Ottimizzazione per curve di richiamo di precisione con squilibrio di classe


30

Ho un compito di classificazione in cui ho un numero di predittori (uno dei quali è il più informativo) e sto usando il modello MARS per costruire il mio classificatore (sono interessato a qualsiasi modello semplice, e usare glms a scopo illustrativo sarebbe bene anche). Ora ho un enorme squilibrio di classe nei dati di allenamento (circa 2700 campioni negativi per ogni campione positivo). Analogamente alle attività di reperimento delle informazioni, sono più preoccupato di prevedere i campioni di test positivi ai primi posti. Per questo motivo, le prestazioni sulle curve di richiamo di precisione sono importanti per me.

Prima di tutto, ho semplicemente addestrato il modello sui miei dati di allenamento mantenendo lo squilibrio di classe così com'è. Visualizzo il mio modello allenato in rosso e l'input più importante in blu.

Formazione su dati sbilanciati, valutazione su dati sbilanciati :

PR per allenamento sbilanciato ROC per allenamento sbilanciato

Pensando che lo squilibrio di classe stia gettando via il modello, poiché l'apprendimento dei campioni positivi di alto livello è una parte minuscola dell'intero set di dati, ho ricampionato i punti di allenamento positivi per ottenere un set di dati di allenamento bilanciato. Quando tracciamo le prestazioni sul set di allenamento bilanciato , ottengo buone prestazioni. In entrambe le curve PR e ROC, il mio modello addestrato fa meglio degli input.

Formazione su dati bilanciati (ricampionati), valutazione anche su dati bilanciati (ricampionati):

PR per allenamento bilanciato, visualizzato su set di dati bilanciato ROC per allenamento bilanciato, visualizzato su set di dati bilanciato

Tuttavia, se uso questo modello addestrato sui dati bilanciati, per prevedere il set di allenamento originale e sbilanciato, ottengo comunque cattive prestazioni sulla curva PR.

Formazione su dati bilanciati (ricampionati), valutazione su dati non bilanciati originali:

PR per allenamento bilanciato, visualizzato su set di dati originale e non bilanciato ROC per allenamento bilanciato, visualizzato su set di dati originale e sbilanciato

Quindi le mie domande sono:

  1. Il motivo per cui la visualizzazione della curva PR mostra prestazioni inferiori del mio modello addestrato (rosso), mentre la curva ROC mostra miglioramenti a causa dello squilibrio di classe?
  2. Gli approcci di ricampionamento / up-sampling / down-sampling possono risolvere questo problema per costringere l'allenamento a concentrarsi sulla regione ad alta precisione / basso richiamo?
  3. Esiste un altro modo per concentrare l'allenamento sulla regione ad alta precisione / a basso richiamo?

Potresti modificare la tua domanda per chiarire quali misure vengono calcolate sul set di addestramento e quali sui dati forniti?
Jack Tanner,

@JackTanner, tutto è calcolato sul set di allenamento per ora. Dal momento che il modello non ha molti parametri e il numero di campioni nel set di addestramento è enorme, non mi preoccupo troppo del sovradimensionamento. Inoltre, voglio essere sicuro di ottenere buone prestazioni sul set di allenamento prima di potermi aspettare nel set di test.
highBandWidth,

Quale manopola stai controllando nel tuo algoritmo di apprendimento per valutare la precisione a diversi livelli di richiamo? Hai provato ad espandere il tuo set di funzionalità, ad es. Con combinazioni di funzionalità e trasformazioni?
Jack Tanner il

@JackTanner, Il modello che ho (MARS con funzione logit) fornisce output nell'intervallo da 0 a 1, simile alla regressione logistica. È praticamente lo stesso, ma include alcune funzionalità in più. Per ottenere precisione in diversi richiami, ho semplicemente impostato le soglie in punti diversi. Uso semplicemente il modo standard per calcolare PR o ROC da un elenco classificato.
highBandWidth

Risposte:


15
  1. La curva ROC è insensibile alle variazioni dello squilibrio di classe; vedi Fawcett (2004) "Grafici ROC: note e considerazioni pratiche per i ricercatori".
  2. L'upgrade della classe a bassa frequenza è un approccio ragionevole.
  3. Esistono molti altri modi per affrontare lo squilibrio di classe. Potenziamento e insaccamento sono due tecniche che vengono in mente. Questo sembra un recente studio pertinente: confrontare le tecniche di potenziamento e insaccamento con dati rumorosi e squilibrati

PS Neat problem; Mi piacerebbe sapere come risulta.



1

Volevo attirare l'attenzione sul fatto che gli ultimi 2 esperimenti stanno effettivamente utilizzando il modello SAME sul set di dati QUASI LO STESSO. La differenza nelle prestazioni non è la differenza del modello, è spiegata da diverse distribuzioni del set di dati di validazione e dalle proprietà di particolari METRICS utilizzati - precisione e richiamo, che dipendono fortemente da quella distribuzione. Per elaborare questo punto un po 'di più, se hai preso X voci distinte dal tuo set di dati di convalida iniziale e hai replicato la classe di minoranza per il set di dati upscaled, il tuo modello farà le stesse previsioni per quelle voci X, corrette o errate, sia in upscaled che in sbilanciato set di dati di validazione. L'unica differenza è che per ogni falso positivo ci saranno meno veri positivi nel set di dati iniziale (quindi una precisione inferiore) e più veri veri nel set di dati bilanciato (semplicemente per il fatto che ci sono più esempi positivi nel set di dati in generale) . Ecco perché si dice che Precisione e Richiamo siano sensibili all'inclinazione. D'altra parte, come dimostrano anche i tuoi esperimenti, il ROC non cambia. Ciò può essere osservato osservando anche la sua definizione. Ecco perché si dice che ROC non sia sensibile all'inclinazione.

Non ho ancora buone risposte per i punti 2 e 3 come sto cercando quelli me stesso :)


0

Supponendo che i campioni positivi ricampionati abbiano la "stessa distribuzione" del "set originale". All'aumentare del numero di campioni positivi, si verificano pochi cambiamenti

1) il numero di TruePositives (TP) aumenta per "tutte le soglie" e, di conseguenza, i rapporti TP / (TP + FP) e TP / (TP + FN) aumentano per tutte le soglie. In modo che l'area sotto la RPC stia aumentando.

2) la precisione attesa, detta anche precisione del modello "muto", aumenta da ~ 1/2700 (nel set originale) a ~ 1/2 (in caso di equilibrio "ideale"). Supponendo che il tuo modello funzioni meglio del modello "stupido" significa che l'area sotto la curva sarà più di 0.00037 nel "set originale" e più di 0,5 nel set idealmente bilanciato.

3) durante l'addestramento del modello su set di dati potenziato, alcuni modelli possono "sovrautilizzare" campioni positivi.

Per quanto riguarda le curve ROC, è noto che le curve ROC mostrano scarso effetto dalle variazioni della distribuzione di classe (l'upscaling ha un effetto molto minore sull'FPR, mentre si può vedere qualche effetto sul TPR).

Per quanto riguarda la messa a fuoco in una regione ad alta precisione / richiamo basso, è possibile ottimizzare rispetto a una funzione di costo in cui i falsi positivi sono penalizzati più dei falsi 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.