Perché downsample?


42

Supponiamo che io voglia imparare un classificatore che prevede se un'e-mail è spam. E supponiamo che solo l'1% delle e-mail sia spam.

La cosa più semplice da fare sarebbe imparare il banale classificatore che dice che nessuna delle e-mail è spam. Questo classificatore ci darebbe una precisione del 99%, ma non imparerebbe nulla di interessante e avrebbe un tasso del 100% di falsi negativi.

Per risolvere questo problema, le persone mi hanno detto di "sottocampionare" o di imparare su un sottoinsieme dei dati in cui il 50% degli esempi sono spam e il 50% non è spam.

Ma sono preoccupato per questo approccio, poiché una volta creato questo classificatore e iniziato a usarlo su un vero corpus di e-mail (al contrario di un set di test 50/50), è possibile prevedere che molte e-mail sono spam quando davvero no. Solo perché è abituato a vedere molto più spam di quello effettivamente presente nel set di dati.

Quindi, come possiamo risolvere questo problema?

("Upsampling" o ripetizione degli esempi di allenamento positivo più volte, quindi il 50% dei dati sono esempi di allenamento positivo, sembra soffrire di problemi simili).

Risposte:


37

La maggior parte dei modelli di classificazione in realtà non produce una decisione binaria, ma piuttosto un valore di decisione continuo (ad esempio, i modelli di regressione logistica producono una probabilità, gli SVM generano una distanza con segno sull'iperpiano, ...). Usando i valori delle decisioni possiamo classificare i campioni di prova, da "quasi certamente positivi" a "quasi certamente negativi".

In base al valore della decisione, è sempre possibile assegnare un valore soglia che configura il classificatore in modo tale che una determinata frazione di dati sia etichettata come positiva. È possibile determinare una soglia appropriata tramite le curve ROC o PR del modello . Puoi giocare con la soglia decisionale indipendentemente dal saldo utilizzato nel set di allenamento. In altre parole, tecniche come up-o downsampling sono ortogonali a questo.

Supponendo che il modello sia migliore di quello casuale, si può intuire intuitivamente che l'aumento della soglia per la classificazione positiva (che porta a previsioni meno positive) aumenta la precisione del modello a costo di un richiamo inferiore e viceversa.

Considera SVM come un esempio intuitivo: la sfida principale è imparare l' orientamento dell'iperpiano di separazione. Su -o downsampling può aiutare con questo (consiglio di preferire l'upsampling rispetto al downsampling). Quando l'orientamento dell'iperpiano è buono, possiamo giocare con la soglia di decisione (ad es. Distanza segnata dall'iperpiano) per ottenere una frazione desiderata di previsioni positive.


Grazie, è stato molto utile. Come fai a sapere quale dovrebbe essere la soglia? Vuoi impostare la soglia in modo che la proporzione di previsioni positive sia uguale alla proporzione di esempi positivi nella popolazione?
Jessica,

2
@Jessica Come ho già detto, un modo conveniente di scegliere la soglia è tramite le curve delle caratteristiche operative del ricevitore (ROC). Ogni soglia corrisponde a un punto nello spazio ROC. Quando traccia la curva, puoi scegliere una soglia in base a ciò che si adatta alle tue esigenze specifiche. (potresti anche usare curve di richiamo di precisione come alternativa)
Marc Claesen,

Non sono d'accordo sul fatto che la distanza di un punto di prova dall'iperpiano appresa da un SVM sia una misura della fiducia della previsione. Sono stati compiuti sforzi per confidare la previsione dell'output di SVM. Cerca ad esempio il ridimensionamento di Platt. Ma non funziona così come la classificazione del processo gaussiana (sicurezza della predizione wrt).
Seeda,

1
Il ridimensionamento di @Seeda Platt riguarda i valori delle decisioni che scaricano le scarpe in probabilità. Il ridimensionamento di Platt è semplice come l'esecuzione di valori di decisione (ridimensionati) attraverso la funzione logistica, che è monotonicamente crescente e quindi non influisce in alcun modo sulle classifiche (= confidenza). Tutto ciò che fa è mappare l'output da a . R[0,1]
Marc Claesen,

@MarcClaesen Non sto suggerendo di usare il ridimensionamento di Platt; è un "tentativo" di generare confidenze di previsione ma ci sono alternative migliori. Tutto quello che sto dicendo è che usare la distanza dall'iperpiano non è significativo e rivedere la letteratura, non l'ho mai incontrato, anche se è la prima cosa che mi viene in mente cercando di generare confidenze da un SVM.
Seeda,

14

Il vero problema qui è la scelta della metrica: l'accuratezza% è una misura insufficiente del successo di un modello su un set di dati non bilanciato (per la ragione esatta menzionata: in questo caso è banale ottenere un'accuratezza del 99%).

Bilanciare il set di dati prima di adattare il modello è una cattiva soluzione poiché distorce il modello e (anche peggio) genera dati potenzialmente utili.

Stai molto meglio bilanciando la tua metrica di precisione, piuttosto che bilanciare i tuoi dati. Per esempio si potrebbe utilizzare la precisione equilibrata durante la valutazione si modella: (error for the positive class + error for the negative class)/2. Se pronostichi tutto positivo o tutto negativo, questa metrica sarà 50%una buona proprietà.

A mio avviso, l'unico motivo per sottocampionare è quando hai troppi dati e non riesci ad adattarti al tuo modello. Molti classificatori (ad esempio la regressione logistica) andranno bene sui dati non bilanciati.


Posso chiedere come i classificatori possono fare bene sui dati sbilanciati? Forse sono solo i miei dati, ma ho provato ad allenare la regressione logistica, le foreste casuali e i modelli C5.0 sui miei dati di allenamento, sia sbilanciati che bilanciati usando il sovra / sottocampionamento misto. I modelli addestrati sui dati sbilanciati hanno prestazioni molto peggiori sul mio set di test rispetto a quelli formati su dati bilanciati.
Seanosapien,

13

Come sempre @Marc Claesenun'ottima risposta.

Aggiungerei semplicemente che il concetto chiave che sembra mancare è il concetto di una funzione di costo . In qualsiasi modello hai un costo implicito o esplicito di falsi negativi a falsi positivi (FN / FP). Per i dati sbilanciati descritti si è spesso disposti ad avere un rapporto 5: 1 o 10: 1. Esistono molti modi per introdurre funzioni di costo nei modelli. Un metodo tradizionale è quello di imporre un limite di probabilità sulle probabilità prodotte da un modello - questo funziona bene per la regressione logistica.

Un metodo utilizzato per classificatori rigorosi che non generano naturalmente stime di probabilità è sottocampionare la classe di maggioranza in un rapporto che indurrà la funzione di costo che ti interessa. Nota che se esegui il campionamento a 50/50 stai inducendo una funzione di costo arbitraria. La funzione di costo è diversa ma altrettanto arbitraria come se si eseguisse il campionamento al tasso di prevalenza. Spesso è possibile prevedere un rapporto di campionamento adeguato corrispondente alla propria funzione di costo (di solito non è 50/50), ma la maggior parte dei professionisti con cui ho parlato prova solo un paio di rapporti di campionamento e sceglie quello più vicino alla loro funzione di costo.


2
Grazie per averlo sollevato, è un'idea interessante che non avevo preso in considerazione. Come puoi sapere quale rapporto di campionamento corrisponde alla tua funzione di costo?
Jessica,

8

Rispondere direttamente alla domanda di Jessica: uno dei motivi del downsampling è quando si lavora con un set di dati di grandi dimensioni e si affrontano limiti di memoria sul computer o si desidera semplicemente ridurre i tempi di elaborazione. Il downsampling (ovvero prelevare un campione casuale senza sostituzione) dai casi negativi riduce il set di dati a dimensioni più gestibili.

Hai menzionato l'uso di un "classificatore" nella tua domanda ma non hai specificato quale. Un classificatore che potresti voler evitare sono gli alberi decisionali. Quando eseguo un semplice albero decisionale su dati di eventi rari, trovo spesso che l'albero costruisce solo una singola radice dato che ha difficoltà a dividere così pochi casi positivi in ​​categorie. Potrebbero esserci metodi più sofisticati per migliorare le prestazioni degli alberi per eventi rari - non ne conosco nulla al di sopra della mia testa.

Pertanto, utilizzare un regresso logistico che restituisce un valore di probabilità previsto continuo, come suggerito da Marc Claesen, è un approccio migliore. Se si esegue una regressione logistica sui dati, i coefficienti rimangono imparziali nonostante siano presenti meno record. Dovrai regolare l'intercetta, , dalla tua regressione sottocampionata secondo la formula di Hosmer e Lemeshow, 2000:β0

βc=β0log(p+1p+)

dove è la frazione di casi positivi nella popolazione pre-downsampling.p+

È possibile trovare la soglia dell'ID spam preferita con il ROC eseguendo prima un punteggio del set di dati completo con i coefficienti del modello tracciati sul set di dati sottocampionato, quindi classificando i record dalla probabilità più alta alla più bassa prevista di essere spam. Quindi, prendi i primi record registrati, dove è la soglia che vuoi impostare (100, 500, 1000, ecc.) E quindi calcola la percentuale di casi falsi positivi nei primi casi e la percentuale di casi falsi negativi il livello inferiore rimanente di casi - al fine di trovare il giusto equilibrio di sensibilità / specificità al servizio delle vostre esigenze.nnnNn


3

Naturalmente classificare tutto come "non spam" consente di dire che, dati 100 messaggi, ne classifica correttamente 99, ma classifica anche come "non spam" l'unico contrassegnato come spam (100% falso positivo). Si scopre che la metrica scelta per valutare l'algoritmo non è adatta. Questo video esemplifica il concetto.

In parole povere, il bilanciamento del set di dati consente di ponderare gli errori di classificazione errata. Un algoritmo che utilizza presumibilmente un set di allenamento sbilanciato non imparerà a discriminare le funzionalità, perché non darebbe molta importanza al fatto che classifichi erroneamente i dati della classe scarsa.


0

Non sceglierei né il downsampling né il upsampling poiché entrambi inganna l'algoritmo di apprendimento, tuttavia, se i dati sono stati sbilanciati la misura di accuratezza diventa non valida o non informativa, quindi è meglio usare precisione e misure di richiamo, entrambe dipendono principalmente dal TP ( gli spam correttamente classificati nel tuo caso) questo dà una buona idea delle reali prestazioni del tuo sistema in termini di rilevamento di spam indipendentemente dal numero di esempi negativi.

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.