Guida rapida alla formazione di set di dati altamente squilibrati


29

Ho un problema di classificazione con circa 1000 campioni positivi e 10000 negativi nel set di allenamento. Quindi questo set di dati è abbastanza sbilanciato. La semplice foresta casuale sta solo cercando di contrassegnare tutti i campioni di test come una classe di maggioranza.

Ecco alcune buone risposte sul sottocampionamento e sulla foresta casuale ponderata: quali sono le implicazioni per l'addestramento di un insieme di alberi con set di dati altamente distorti?

Quali metodi di classificazione oltre a RF possono gestire il problema nel migliore dei modi?


Risposte:


19
  • Max Kuhn lo copre bene nel Ch16 della modellazione predittiva applicata .
  • Come indicato nel thread collegato, i dati squilibrati sono essenzialmente un problema di formazione sensibile ai costi. Pertanto, qualsiasi approccio sensibile ai costi è applicabile ai dati squilibrati.
  • Esistono molti approcci di questo tipo. Non tutti implementati in R: C50, gli SVM ponderati sono opzioni. Jous-boost. Rusboost penso sia disponibile solo come codice Matlab.
  • Non uso Weka, ma credo che abbia un gran numero di classificatori sensibili ai costi.
  • Gestione di set di dati non bilanciati : una recensione : Sotiris Kotsiantis, Dimitris Kanellopoulos, Panayiotis Pintelas '
  • Sul problema dello squilibrio di classe : Xinjian Guo, Yilong Yin, Cailing Dong, Gongping Yang, Guangtong Zhou

16

Sottocampionare la classe di maggioranza è di solito la strada da percorrere in tali situazioni.

Se si pensa di avere troppe poche istanze della classe positiva, è possibile eseguire il sovracampionamento, ad esempio esempi 5n istanze con sostituzione dall'insieme di dati di dimensione n.

Avvertenze:

  • Alcuni metodi possono essere sensibili ai cambiamenti nella distribuzione delle classi, ad esempio per Naive Bayes: influiscono sulle probabilità precedenti.
  • Il sovracampionamento può comportare un eccesso di adattamento

O forse provare qualche algoritmo di clustering e utilizzare i cluster center?
Leela Prabhu,

È possibile controllare questo collegamento per sovracampionamento e altri metodi per gestire set di dati non bilanciati.
Janpreet Singh,

11

Anche l'aumento del gradiente è una buona scelta qui. Ad esempio, puoi usare il classificatore di incremento gradiente in sci-kit learn. L'aumento del gradiente è un metodo di principio per affrontare lo squilibrio di classe costruendo serie di addestramento successive basate su esempi classificati in modo errato.


1
La mia comprensione è che l'aumento del gradiente soffre degli stessi limiti della RF quando si tratta di dati sbilanciati: sci2s.ugr.es/keel/pdf/algorithm/articulo/…
charles,

1
Il potenziamento è un ulteriore passo da compiere nella costruzione della foresta che affronta direttamente lo squilibrio. Il documento che collega nota questo nell'introduzione che indica il potenziamento aiuta anche nei casi in cui non c'è squilibrio. E quel documento conclude che il potenziamento aiuta in modo significativo. Quindi non sei sicuro di dove sia mostrata l'equivalenza tra RF e boost?
Cwharland,

1

Oltre alle risposte pubblicate qui, se il numero di esempi positivi è troppo piccolo rispetto agli esempi negativi, allora si avvicina ad essere un problema di rilevamento di anomalie in cui gli esempi positivi sono le anomalie.

Hai una vasta gamma di metodi per rilevare anomalie che vanno dall'uso della distribuzione gaussiana multivariata per modellare tutti i punti e quindi selezionare quelli che sono 2 o 3 std dalla media.

Un altro spunto di riflessione - ho visto un bel po 'di persone che campionano casualmente gli esempi negativi con più esempi in modo che entrambe le classi siano uguali in numero. Dipende totalmente dal problema attuale, sia che vogliamo che siano bilanciati o meno.

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.