Qual è la causa principale del problema di squilibrio di classe?


30

Ultimamente ho pensato molto al "problema di squilibrio di classe" nell'apprendimento automatico / statistico e sto attingendo sempre più da un sentimento che non capisco cosa stia succedendo.

Prima lasciami definire (o tentare di) definire i miei termini:

Il problema dello squilibrio di classe nell'apprendimento automatico / statistico è l'osservazione che alcuni algoritmi di classificazione binaria (*) non funzionano bene quando la proporzione da 0 classi a 1 classi è molto distorta.

Quindi, in quanto sopra, ad esempio, se ci fossero cento classi per ogni singola classe , direi che lo squilibrio di classe è compreso tra e o .0111001%

La maggior parte delle affermazioni sul problema che ho visto mancano di ciò che considererei una qualificazione sufficiente (quali modelli lottano, quanto lo squilibrio è un problema), e questa è una fonte della mia confusione.

Un sondaggio dei testi standard nell'apprendimento automatico / statistico risulta poco:

  • Gli elementi di inclinazione statistica e introduzione all'apprendimento statistico non contengono "squilibri di classe" nell'indice.
  • Anche Machine Learning per Predictive Data Analytics non contiene "squilibri di classe" nell'indice.

  • Di Murphy Machine Learning: una probabilistica prospettiva fa contenere "classe squilibrio * nell'indice Il riferimento è a una sezione su SVM, dove ho trovato il seguente commento allettante.:

    Vale la pena ricordare che tutte queste difficoltà, e la pletora di euristiche che sono state proposte per risolverle, sorgono fondamentalmente perché le SVM non modellano l'incertezza usando le probabilità, quindi i loro punteggi di output non sono comparabili tra le classi.

Questo commento si fonda con la mia intuizione ed esperienza: nel mio lavoro precedente avremmo sistematicamente adattato regressioni logistiche e modelli di alberi potenziati con gradiente (per ridurre al minimo la probabilità di log binomiale) a dati sbilanciati (nell'ordine di uno squilibrio di classe ), con nessun problema evidente nelle prestazioni.1%

Ho letto modelli albero (da qualche parte) che la classificazione basati su alberi (se stessi e la foresta casuale) , inoltre, soffrono il problema di classe squilibrio. Questo confonde un po 'le acque, gli alberi, in un certo senso, restituiscono probabilità: il record di voto per la classe target in ciascun nodo terminale dell'albero.

Quindi, per concludere, quello che sto veramente cercando è una comprensione concettuale delle forze che portano al problema di squilibrio di classe (se esiste).

  • È qualcosa che facciamo a noi stessi con algoritmi scelti male e soglie di classificazione predefinite pigre?
  • Svanisce se adattiamo sempre modelli di probabilità che ottimizzano i criteri di punteggio adeguati? Detto diversamente, la causa è semplicemente una cattiva scelta della funzione di perdita, vale a dire la valutazione del potere predittivo di un modello basato su rigide regole di classificazione e accuratezza complessiva?
  • In tal caso, i modelli che non ottimizzano le regole di punteggio adeguate sono inutili (o almeno meno utili)?

(*) Per classificazione intendo qualsiasi modello statistico adatto ai dati di risposta binaria. Io non parto dal presupposto che il mio obiettivo è un compito difficile da una classe o l'altro, per quanto possa essere.


1
Un ovvio problema potrebbe sorgere quando lo studente penalizza allo stesso modo la perdita di ogni classe. Restituire tutto ciò che la stessa classe potrebbe teoricamente ridurre al minimo la perdita totale.
Firebug

1
Ho dimenticato di aggiungere il poor choice of loss functionmio elenco. Quindi, pensi che questo sia vero anche per le regole di punteggio corrette come funzioni di perdita?
Matthew Drury,

Credo di si. Immagino che possiamo formulare un problema in cui minimizzare la perdita della classe più grande minimizza anche la perdita dell'intero problema, mentre in generale la classe minoritaria è di maggiore interesse.
Firebug,

3
Sono d'accordo con i sentimenti della domanda. Ho avuto un'ipotesi di lavoro (anche se felice di rifiutarlo) che non ci sono problemi di squilibrio di classe in sé, solo che ci alleniamo con funzioni di perdita che non rappresentano ciò che useremo per misurare il successo sui dati dei test. Ed è difficile definirlo un errore, in quanto è una pratica quasi standard: ad esempio non è standard ottimizzare direttamente il punteggio AUC o F1, ma questi sono parametri comuni di successo per problemi con uno squilibrio di classe. Quindi forse questo è il problema di squilibrio di classe?
David R

9
La causa del problema di squilibrio di classe è la convenzione di usare l'accuratezza come una funzione di perdita. lo squilibrio di classe è una caratteristica del problema (ad esempio diagnostica delle malattie rare), che può essere affrontata usando diverse strategie. L'uso di una classe di peso inversa proporzionale alla dimensione della classe quando si calcola la funzione di perdita è uno di questi. A parte questo, l'AUC come funzione di perdita è una buona idea in quanto distingue specificamente tra vero positivo e falso positivo. Pertanto il problema principale del problema degli squilibri di classe è la funzione di perdita. Grande domanda però, a cui non oso rispondere.
Nikolas Rieble,

Risposte:


4

Una voce dall'Enciclopedia di Machine Learning ( https://cling.csd.uwo.ca/papers/cost_sensitive.pdf ) spiega utile che ciò che viene chiamato "il problema dello squilibrio di classe" è meglio inteso come tre problemi separati:

 (1) assuming that an accuracy metric is appropriate when it is not

 (2) assuming that the test distribution matches the training 
     distribution when it does not

 (3) assuming that you have enough minority class data when you do not

Gli autori spiegano:

I set di dati di classe sbilanciati si verificano in molte applicazioni del mondo reale in cui le distribuzioni di classe di dati sono altamente sbilanciate. Ancora una volta, senza perdita di generalità, assumiamo che la classe minoritaria o rara sia la classe positiva e la classe di maggioranza sia la classe negativa. Spesso la classe di minoranza è molto piccola, come l'1% del set di dati. Se applichiamo la maggior parte dei classificatori tradizionali (insensibili ai costi) sul set di dati, probabilmente prediranno tutto come negativo (la classe di maggioranza). Questo è stato spesso considerato un problema nell'apprendimento da set di dati altamente squilibrati.

Tuttavia, come sottolineato da (Provost, 2000), due classifiche fondamentali sono spesso formulate nei classificatori tradizionali insensibili ai costi. Il primo è che l'obiettivo dei classificatori è massimizzare l'accuratezza (o minimizzare il tasso di errore); il secondo è che la distribuzione per classe dei set di dati di training e test è la stessa. Sotto questi due presupposti, prevedere tutto come negativo per un set di dati altamente squilibrato è spesso la cosa giusta da fare. (Drummond and Holte, 2005) mostrano che in genere è molto difficile superare questo semplice classificatore in questa situazione.

Pertanto, il problema della classe sbilanciata diventa significativo solo se una o entrambe le due assunzioni di cui sopra non sono vere; vale a dire se il costo di diversi tipi di errore (falso positivo e falso negativo nella classificazione binaria) non è lo stesso, o se la distribuzione della classe nei dati di test è diversa da quella dei dati di addestramento. Il primo caso può essere affrontato efficacemente usando metodi nel meta-apprendimento sensibile ai costi.

Nel caso in cui il costo di errata classificazione non sia uguale, di solito è più costoso classificare erroneamente un esempio di minoranza (positivo) nella classe di maggioranza (negativa), piuttosto che un esempio di maggioranza nella classe di minoranza (altrimenti è più plausibile prevedere tutto come negativo). Cioè, FN> FP. Pertanto, dati i valori di FN e FP, una varietà di metodi di meta-apprendimento sensibili ai costi può essere ed è stata utilizzata per risolvere il problema degli squilibri di classe (Ling e Li, 1998; Japkowicz e Stephen, 2002). Se i valori di FN e FP non sono esplicitamente sconosciuti, FN e FP possono essere assegnati in modo proporzionale a p (-): p (+) (Japkowicz e Stephen, 2002).

Nel caso in cui le distribuzioni di classe dei set di dati di training e test siano diverse (ad esempio, se i dati di training sono molto sbilanciati ma i dati di test sono più bilanciati), un approccio ovvio è campionare i dati di training in modo tale che la loro distribuzione di classe sia uguale a i dati del test (sovracampionando la classe di minoranza e / o sottocampionando la classe di maggioranza) (Provost, 2000).

Si noti che a volte il numero di esempi della classe di minoranza è troppo piccolo per consentire ai classificatori di apprendere adeguatamente. Questo è il problema dei dati di addestramento (piccoli) insufficienti, diversi da quelli dei set di dati non bilanciati.

Pertanto, come suggerisce Murphy, non vi è nulla di intrinsecamente problematico nell'uso di classi squilibrate, a condizione che si evitino questi tre errori. I modelli che offrono probabilità posteriori rendono più semplice evitare l'errore (1) rispetto ai modelli discriminanti come SVM perché consentono di separare l'inferenza dal processo decisionale. (Vedi la sezione 1.5.4 Inferenza e decisione del vescovo per ulteriori discussioni su quest'ultimo punto.)

Spero che sia d'aiuto.


1
Avevo intenzione di pubblicare qualcosa di simile. un piccolo commento: penso che sia pazzesco sottocampionare la classe più ampia. Questo sta gettando via i tuoi dati e sicuramente non fornirà un risultato migliore. Mi piace l'idea di dividere inferenza e classificazione. la parte di inferenza non è influenzata dallo squilibrio, ma il processo decisionale (classificazione) può essere notevolmente influenzato.
probabilityislogic

@probabilityislogic (e Bill Vander Lugt): Esiste un altro possibile problema che non è discusso in quel testo: se un Ansatz discriminatorio è adeguato. La scelta inadeguata di un modello discriminatorio in cui una classe sarebbe più appropriata può anche portare a "problemi di squilibrio di classe".
cbeleites supporta Monica il

8

Tutto ciò che comporta l'ottimizzazione per minimizzare una funzione di perdita fornirà, se sufficientemente convesso, una soluzione che è un minimo globale di tale funzione di perdita. Dico "sufficientemente convesso" poiché le reti profonde non sono nel complesso convesse, ma danno in pratica ragionevoli minimi, con attente scelte di tasso di apprendimento ecc.

Pertanto, il comportamento di tali modelli è definito da qualunque cosa mettiamo nella funzione di perdita.

F

yf=f(X)

FsolBFFBsol

yg={BSe f(X)>BUNaltrimenti

Bsol

Fsolsol*

Ora, supponiamo di avere una funzione di perdita che è:

L=1NΣn=1Nioyiog(Xio)

ioc1c0yioiog(Xio)io

99*0.9=89.199*0.1=9.91*0.9=0.91*0.1=0.1

L=(9.9+0.1)/100=0.1

sol1/100

L=0.01

Dieci volte inferiore alla perdita quando si imposta la soglia in modo da assegnare uguale richiamo e precisione a ciascuna classe.

solsol*

sol*

In alternativa, possiamo modificare il set di dati clonando ogni esempio B 99 volte, il che farà sì che la funzione di perdita non abbia più un minimo in una posizione diversa dalla nostra soglia ideale precedente.


4
Potete per favore provare a rendere la vostra risposta un po 'più particolare alle domande poste? Sebbene chiaramente ponderato, legge principalmente come commento piuttosto che come risposta. Ad esempio, solo a scopo di commento si potrebbe sostenere che l'utilizzo di una regola di punteggio errata come la funzione di perdita definita è fondamentalmente errato e quindi l'analisi successiva non è valida.
usεr11852 dice Reinstate Monic il

G*

2
FPTPK

FFsolFFsol

3
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

0

Si noti che i classificatori a una classe non hanno problemi di squilibrio poiché osservano ciascuna classe indipendentemente da tutte le altre classi e possono far fronte a "non classi" semplicemente non modellandole. (Potrebbero avere un problema con dimensioni del campione troppo piccole, ovviamente).

Molti problemi che sarebbero modellati in modo più appropriato dai classificatori di una classe portano a modelli mal definiti quando si usano approcci dicriminativi, di cui "problemi di squilibrio di classe" sono un sintomo.

Ad esempio, considera alcuni prodotti che possono essere buoni per essere venduti o meno. Tale situazione è generalmente caratterizzata da

class         | "good"                        | "not good"
--------------+-------------------------------+------------------------------------------
sample size   | large                         | small
              |                               |
feature space | single, well-delimited region | many possibilities of *something* wrong 
              |                               | (possibly well-defined sub-groups of
              |                               |    particular fault reasons/mechanisms) 
              |                               | => not a well defined region, 
              |                               | spread over large parts of feature space
              |                               |
future cases  | can be expected to end up     | may show up *anywhere* 
              | inside modeled region         | (except in good region)

Pertanto, la classe "buona" è ben definita mentre la classe "non buona" è mal definita. Se tale situazione è modellata da un classificatore discriminante, abbiamo un duplice "problema di squilibrio": non solo la classe "non buona" ha dimensioni del campione ridotte, ma ha anche una densità del campione ancora inferiore (meno campioni sparsi su un parte più grande dello spazio delle funzioni).

Questo tipo di "problema di squilibrio di classe" svanirà quando l'attività viene modellata come riconoscimento di una classe della classe "buona" ben definita.

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.