Classificazione dei test sui dati di squilibrio sovracampionato


18

Sto lavorando a dati gravemente squilibrati. In letteratura, vengono utilizzati diversi metodi per riequilibrare i dati utilizzando il ricampionamento (sovra o sottocampionamento). Due buoni approcci sono:

  • SMOTE: Tecnica di sovracampionamento di minoranza sintetica ( SMOTE )

  • ADASYN: Approccio di campionamento sintetico adattivo per l'apprendimento sbilanciato ( ADASYN )

Ho implementato ADASYN per la sua natura adattiva e facilità di estensione a problemi multi-classe.

La mia domanda è come testare i dati di sovracampionamento prodotti da ADASYN (o qualsiasi altro metodo di sovracampionamento). Nei due articoli citati non è chiaro come abbiano eseguito i loro esperimenti. Esistono due scenari:

1- Sovracampionare l'intero set di dati, quindi dividerlo in set di addestramento e test (o convalida incrociata).

2- Dopo aver diviso il set di dati originale, eseguire il sovracampionamento solo sul set di training e testare sul set di test di dati originale (può essere eseguito con validazione incrociata).

Nel primo caso i risultati sono molto migliori che senza un sovracampionamento, ma sono preoccupato se ci sia un eccesso di adattamento. Mentre nel secondo caso i risultati sono leggermente migliori che senza sovracampionamento e molto peggio del primo caso. Ma la preoccupazione per il secondo caso è se tutti i campioni di classe minoritaria vanno al set di test, quindi non si otterrà alcun beneficio con il sovracampionamento.

Non sono sicuro se ci sono altre impostazioni per testare tali dati.

Risposte:


18

Alcuni commenti:

L'opzione (1) è una pessima idea. Copie dello stesso punto possono finire in entrambi i set di addestramento e test. Ciò consente al classificatore di imbrogliare, perché quando cerca di fare previsioni sul set di test il classificatore avrà già visto punti identici nel set di treni. Il punto fondamentale di disporre di un set di prova e di un set di treni è che il set di test deve essere indipendente dal set di treni.

K


Grazie Stefan per la risposta. Ma voglio chiarire un punto: i metodi che ho citato creano istanze "sintetiche" dei dati, non esattamente identiche a quelle originali. Quindi non è esattamente come se stessi testando gli stessi dati di allenamento. Tuttavia, non sono ancora sicuro che l'opzione 1 sia un approccio valido.
Tariffe

Ok capisco! Il problema con (1) rimane comunque, anche se si creano dati "sintetici", poiché i dati sintetici sono in genere molto simili ai dati originali che imita.
Stefan Wager,

@StefanWager per quanto riguarda la distribuzione del set di test? Dovrebbe essere uguale al set di dati originale?
Wannik,

2
qualsiasi riferimento di articoli a supporto di questa affermazione?
girl101,

L'approccio di @ stefan è corretto non aumenti o sintetizzi mai il tuo set di validazione perché questa è la tua prova (test) di come il tuo modello sta imparando, hai bisogno di dati originali per farlo
M090009

7

La seconda (2) opzione è il modo giusto di farlo. I campioni sintetici creati con le tecniche di sovracampionamento non sono esempi reali ma piuttosto sintetici. Questi non sono validi a scopo di test mentre sono ancora ok per la formazione. Hanno lo scopo di modificare il comportamento del classificatore senza modificare l'algoritmo.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.