2009-12-09 8 views
5

Attualmente sono in difficoltà con un problema di apprendimento automatico mentre devo gestire grandi insiemi di dati non bilanciati. Cioè, ci sono sei classi ('1', '2' ... '6'). Purtroppo, ad es. per la classe '1' 150 esempi/istanze, per '2' 90 istanze e per la classe '3' solo 20. Tutte le altre classi non possono essere "addestrate" poiché non ci sono istanze disponibili per queste classi.Resample Filter di WEKA - Come interpretare il risultato

Finora, ho capito che WEKA (il toolkit di apprendimento automatico che sto utilizzando) fornisce questo filtro "Resample" supervisionato. Quando applico questo filtro con "noReplacement" = falso e "bialToUniformClass" = 1.0, questo risulta in un set di dati, dove il numero di istanze è piacevole e quasi uguale (per la classe "1" .. "3" e gli altri rimanere vuoto).

La mia domanda è ora: in che modo WEKA e questo filtro generano "nuove"/istanze aggiuntive per classi diverse.

Grazie mille in anticipo per eventuali suggerimenti o suggerimenti.

Acclamazioni Julian

risposta

2

Uso filtro di campionamento supervisionato WEKA aggiunge casi a una classe. Questo si realizza semplicemente aggiungendo istanze dalla classe che ha solo poche istanze più volte nel set di dati del risultato.

Pertanto il set di dati risultante è fortemente sbilanciato in termini di una classe per la quale sono disponibili solo pochi campioni.

1

Non funziona. Sta ricampionando istanze esistenti. Se si dispone di un'istanza di classe 2 e si richiede un resampling con una polarizzazione di 1.0, è possibile aspettarsi N copie di tale istanza e N altre istanze di ciascun altro tipo per cui esistono già dati.

1

Provare con il filtro SMOTE sul preprocesso.

Bilancia il set di dati generando nuovi dati per la classe minore.