Quando i dati sbilanciati sono davvero un problema in Machine Learning?


53

Abbiamo già avuto più domande sui dati sbilanciati quando si utilizzano la regressione logistica , SVM , alberi delle decisioni , insaccamento e una serie di altre domande simili, ciò che lo rende un argomento molto popolare! Sfortunatamente, ciascuna delle domande sembra essere specifica dell'algoritmo e non ho trovato linee guida generali per la gestione di dati sbilanciati.

Citando una delle risposte di Marc Claesen , trattando dati sbilanciati

(...) dipende fortemente dal metodo di apprendimento. La maggior parte degli approcci per scopi generali ha uno (o più) modi per affrontarlo.

Ma quando dovremmo esattamente preoccuparci dei dati sbilanciati? Quali algoritmi sono maggiormente interessati e quali sono in grado di gestirlo? Quali algoritmi avrebbero bisogno di noi per bilanciare i dati? Sono consapevole che discutere di ciascuno degli algoritmi sarebbe impossibile sul sito di domande e risposte come questo, sto piuttosto cercando una guida generale su quando potrebbe essere un problema.



@MatthewDrury grazie, questa è una domanda interessante, ma IMHO, ha un ambito diverso. Quello che sto chiedendo sono delle linee guida quando questo è davvero un problema. Sicuramente rispondere alla domanda sul perché porta a rispondere alla domanda quando , ma sto cercando una risposta precisa per la domanda quando .
Tim

9
Giusto! Sono con te. La "letteratura" su questo sembra essere tutta su come risolvere un problema, senza preoccuparsi di convincerti che in realtà c'è un problema da risolvere, o addirittura dirti in quali situazioni si verifica o meno un problema. Una delle parti più frustranti dell'argomento per me.
Matthew Drury,

2
@MatthewDrury questo è esattamente il problema!
Tim

1
Un'indagine totale sui metodi non rientra nell'ambito di una domanda SE. Vuoi affinare la domanda?
AdamO,

Risposte:


29

Non è una risposta diretta, ma vale la pena notare che nella letteratura statistica, alcuni dei pregiudizi contro i dati sbilanciati hanno radici storiche.

Molti modelli classici si semplificano perfettamente in base all'assunzione di dati bilanciati, in particolare per metodi come ANOVA che sono strettamente correlati alla progettazione sperimentale, una motivazione tradizionale / originale per lo sviluppo di metodi statistici.

Ma l'aritmetica statistica / probabilistica diventa piuttosto brutta, abbastanza rapidamente, con dati sbilanciati. Prima della diffusa adozione dei computer, i calcoli manuali erano così estesi che era praticamente impossibile stimare modelli su dati sbilanciati.

Naturalmente, i computer hanno sostanzialmente reso questo un problema. Allo stesso modo, possiamo stimare modelli su insiemi di dati di grandi dimensioni, risolvere problemi di ottimizzazione ad alta dimensione e trarre campioni da distribuzioni di probabilità congiunte analiticamente intrattabili, tutte funzionalmente impossibili come, cinquant'anni fa.

È un vecchio problema e gli accademici hanno impiegato molto tempo a lavorare sul problema ... nel frattempo, molti problemi applicati hanno superato / annullato quella ricerca, ma le vecchie abitudini sono dure a morire ...

Modifica per aggiungere:

Mi rendo conto di non essere uscito e di dirlo semplicemente: non c'è un problema di basso livello con l'utilizzo di dati sbilanciati. Nella mia esperienza, il consiglio di "evitare dati non bilanciati" è specifico dell'algoritmo o saggezza ereditata. Concordo con AdamO sul fatto che, in generale, i dati sbilanciati non presentano problemi concettuali a un modello ben specificato.


4
Mentre sembro capire il tuo punto, le tue premesse mancano di argomenti a sostegno. Potresti fornire alcuni argomenti e / o esempi sul pregiudizio e su come ha influito sull'apprendimento automatico?
Tim

1
Mentre quello che dici è per lo più vero, è anche vero che metodi come l'anova sono più robusti con dati bilanciati, ad esempio la non-anomalia è meno un problema con i dati bilanciati. Ma credo che tutto ciò sia ortogonale all'intento di questa domanda ...
kjetil b halvorsen,

7
Mi rendo conto di non essere uscito e di dirlo semplicemente: non c'è un problema di basso livello con l'uso di dati sbilanciati. Nella mia esperienza, il consiglio di "evitare dati sbilanciati" è specifico dell'algoritmo o saggezza ereditata. Concordo con AdamO sul fatto che, in generale, i dati sbilanciati non presentano problemi concettuali a un modello ben specificato.
Henry,

1
@ M.HenryL. vale la pena aggiungere questo commento alla tua risposta per completezza.
Tim

16

Con WLOG puoi concentrarti sullo squilibrio in un singolo fattore, piuttosto che su un concetto più sfumato di "scarsità di dati", o conteggi di piccole cellule.

Nelle analisi statistiche non focalizzate sull'apprendimento, troviamo spesso una potenza simile o migliore quando si usano i punteggi di propensione per abbinare il gruppo più piccolo al gruppo più grande. Ciò è in parte dovuto al fatto che il matching ha uno scopo simile all'adeguamento dei confondenti in termini di "bilanciamento" dei determinanti dell'appartenenza al gruppo, bloccandone così gli effetti di confondimento. Il fondamento logico del numero di fattori di confondimento per cui è possibile adeguarsi in un'analisi multivariata dipende dalla dimensione del campione. Alcune regole empiriche dicono una variabile ogni 10-20 osservazioni. Nei dati sbilanciati, credi ingenuamente che i tuoi dati siano sufficientemente grandi, ma con un numero limitato di persone che hanno la condizione più rara: l'inflazione della varianza diminuisce sostanzialmente il potere. In effetti, ti stai adeguando troppo.

Pertanto, almeno nella regressione (ma sospetto in ogni circostanza), l'unico problema con i dati sbilanciati è che hai effettivamente dimensioni ridotte del campione . Se un metodo è adatto al numero di persone nella classe più rara, non dovrebbero esserci problemi se la loro percentuale di membri è squilibrata.


13

I dati non bilanciati rappresentano solo un problema a seconda dell'applicazione. Se ad esempio i tuoi dati indicano che A accade il 99,99% delle volte e lo 0,01% delle volte B e provi a prevedere un determinato risultato, il tuo algoritmo probabilmente dirà sempre A. Questo è ovviamente corretto! È improbabile che il tuo metodo ottenga una precisione di previsione migliore del 99,99%. Tuttavia, in molte applicazioni non ci interessa solo la correttezza della previsione, ma anche il motivo per cui B si verifica a volte. È qui che i dati sbilanciati diventano un problema. Perché è difficile convincere il tuo metodo che può prevedere una correzione migliore del 99,99%. Il metodo è corretto ma non per la tua domanda. Pertanto, la risoluzione di dati sbilanciati sostanzialmente sta influenzando intenzionalmente i tuoi dati per ottenere risultati interessanti anziché risultati accurati.

In generale ci sono tre casi:

  1. sei puramente interessato a previsioni accurate e pensi che i tuoi dati siano rappresentativi. In questo caso non è necessario correggere affatto, crogiolati nella gloria delle tue previsioni accurate al 99,99% :).

  2. Sei interessato alla previsione, ma i tuoi dati provengono da un campione equo, ma in qualche modo hai perso un numero di osservazioni. Se hai perso le osservazioni in modo completamente casuale, stai ancora bene. Se li hai persi in modo distorto ma non sai quanto distorto, avrai bisogno di nuovi dati. Tuttavia, se queste osservazioni si perdono solo sulla base di una caratteristica. (ad esempio hai ordinato i risultati in A e B ma non in altro modo ma hai perso metà di B) Ypu può avviare il bootstrap dei tuoi dati.

  3. Non sei interessato a una previsione globale accurata, ma solo in un caso raro. In questo caso è possibile gonfiare i dati di quel caso avviando il bootstrap dei dati o se si dispone di dati sufficienti che generano dati sugli altri casi. Si noti che ciò pregiudica i tuoi dati e risultati e quindi le possibilità e quel tipo di risultati sono sbagliati!

In generale, dipende principalmente dall'obiettivo. Alcuni obiettivi soffrono di dati sbilanciati, altri no. Tutti i metodi di previsione generale ne soffrono perché altrimenti darebbero risultati terribili in generale.


7
Come cambia questa storia quando valutiamo probabilisticamente i nostri modelli?
Matthew Drury,

@MatthewDrury Le probabilità dal modello originale sono per lo più corrette per i casi 1 e 3. Il problema è che solo con set di dati molto grandi B diventa correttamente separabile da A e la probabilità di B converge lentamente al suo valore reale. L'eccezione è che se B è separato in modo molto chiaro da A o completamente separato in modo casuale da A, le probabilità saranno rispettivamente quasi immediatamente o mai convergenti.
Zen,

@zen Non sono d'accordo sul fatto che la regressione logistica sia meno vulnerabile. La regressione logistica è piuttosto vulnerabile allo squilibrio dei dati, crea una leggera distorsione del campione e i rapporti di probabilità del registro tendono verso un fattore 2. La regressione logistica condizionale è un'alternativa alla stima degli stessi OR senza distorsioni.
AdamO,

@AdamO Sì La regressione logistica è ancora vulnerabile. Ma per gli alberi i piccoli casi possono essere completamente ignorati. non è solo una piccola dimensione del campione. anche per n grandi e per esempio l'80% -20% di distribuzione tra le opzioni gli alberi possono ancora scegliere l'opzione 80% anche se la frazione dell'opzione 20% aumenta chiaramente con alcune variabili x. Se viene rilevata una nuova osservazione più estrema o se il numero di rami è troppo basso per qualsiasi punto estremo, l'albero predirà l'opzione 80% mentre la regressione logistica avrà meno probabilità di farlo. Hai ragione sulla regressione logistica condizionale
zen,

2
@MatthewDrury Stephen Senn ha un'eccellente discussione su questo punto in un documento che rileggo spesso . Euristicamente, il rapporto di probabilità da una tabella 2x2 con voci abcd è stimato da ad / (bc) e ha una varianza 1 / a + 1 / b + 1 / c + 1 / d. Puoi campionare arbitrariamente pochi casi (a e c) e il rapporto di probabilità è ancora imparziale, ma la varianza va all'infinito. È un problema di precisione.
AdamO,

8

Supponiamo di avere due classi:

  • A , che rappresenta il 99,99% della popolazione
  • B , che rappresenta lo 0,01% della popolazione

Supponiamo di essere interessati all'identificazione di elementi di classe B, che potrebbero essere individui colpiti da una malattia rara o un truffatore.

Solo indovinando A gli studenti otterrebbero un punteggio elevato nelle loro funzioni di perdita e i pochissimi elementi classificati in modo errato potrebbero non muovere numericamente l'ago (in un pagliaio, in questo caso). Questo esempio porta l'intuizione dietro uno dei "trucchi" per mitigare il problema degli squilibri di classe: modificare la funzione di costo.

Sento che i dati sbilanciati sono un problema quando i modelli mostrano una sensibilità quasi zero e una specificità prossima a uno. Vedere l'esempio in questo articolo nella sezione "ignorare il problema" .

I problemi hanno spesso una soluzione. Oltre al trucco di cui sopra, ci sono altre opzioni . Tuttavia, hanno un prezzo: un aumento del modello e della complessità computazionale.

La domanda si pone quali modelli hanno maggiori probabilità di assestarsi sulla sensibilità quasi zero e sulla specificità quasi uno. Sento che dipende da alcune dimensioni:

  • Meno capacità, come al solito.
  • Alcune funzioni di costo potrebbero essere più difficili di altre: l'errore quadratico medio (MSE) è meno esposto di Huber - MSE dovrebbe essere meno favorevole verso elementi di classe B erroneamente classificati .

1
Ciò presume implicitamente (1) che il KPI che tentiamo di massimizzare sia la precisione e (2) che la precisione sia un KPI appropriato per la valutazione del modello di classificazione. Non lo è.
S. Kolassa - Ripristina Monica il

5

Se ci pensate: su un set di dati altamente sbilanciato perfettamente separabile, quasi tutti gli algoritmi funzioneranno senza errori.

Quindi, è più un problema di rumore nei dati e meno legato a un particolare algoritmo. E non sai in anticipo quale algoritmo compensi meglio un particolare tipo di rumore.

Alla fine devi solo provare diversi metodi e decidere per validazione incrociata.


Penso che questo commento sia un po 'sottovalutato. Trascorro un po 'di tempo a convincere qualcuno che lo squilibrio di classe non è sempre un problema.
RDK,

Questo non risponde alla domanda. In che modo le classi sbilanciate "sono più un problema di rumore nei dati"?
S. Kolassa - Ripristina Monica il

2
@StephanKolassa È una risposta, perché afferma che i dati non bilanciati non sono (direttamente) un problema. Quindi non puoi chiedere "com'è". Per la domanda più generale "come gestire i problemi di rumore nell'analisi dei dati", la risposta è che è specifico per i singoli set di dati e tutto ciò che puoi fare è impostare la convalida e provare qualunque cosa funzioni. Se vuoi davvero qualche discussione, credo che ele.uri.edu/faculty/he/PDFfiles/ImbalancedLearning.pdf abbia idee. Ma alla fine dovresti eseguire il campionamento / re-ponderazione / soglia e non vale la pena sapere cosa è successo esattamente in questo set di dati.
Gerenuk,
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.