Quale funzione di perdita si dovrebbe usare per ottenere un classificatore binario ad alta precisione o ad alto richiamo?


11

Sto cercando di creare un rilevatore di oggetti che si verificano molto raramente (nelle immagini), pianificando di utilizzare un classificatore binario CNN applicato in una finestra scorrevole / ridimensionata. Ho costruito set di allenamento e test 1: 1 bilanciati positivi e negativi (è una cosa giusta da fare in questo caso tra l'altro?), E il classificatore sta andando bene su un set di test in termini di precisione. Ora voglio controllare il richiamo / la precisione del mio classificatore, quindi, per esempio, non etichetterà erroneamente troppe occorrenze di una classe di maggioranza.

La soluzione ovvia (per me) è quella di utilizzare la stessa perdita logistica che viene utilizzata ora, ma ponderare gli errori di tipo I e di tipo II in modo diverso moltiplicando la perdita in uno dei due casi su una costante, che può essere regolata. È giusto?

PS In un secondo momento questo equivale a ponderare alcuni campioni di allenamento più di altri. Basta aggiungere più di una classe per ottenere lo stesso penso.


hai mai risolto questo? Ho un obiettivo simile. Vorrei ottimizzare per la precisione (tipo 1) e preoccuparmi meno degli errori di tipo 2, quindi ho considerato cosa si può fare per quanto riguarda la funzione di perdita.
Jonathan Shore,

Risposte:


6

Costruire artificialmente un set di allenamento equilibrato è discutibile, in realtà abbastanza controverso. Se lo fai, dovresti verificare empiricamente che funzioni davvero meglio che lasciare il set di allenamento sbilanciato. Equilibrare artificialmente il set di test non è quasi mai una buona idea. Il set di test dovrebbe rappresentare nuovi punti dati quando arrivano senza etichette. Ti aspetti che siano sbilanciati, quindi devi sapere se il tuo modello è in grado di gestire un set di test non bilanciato. (Se non ti aspetti che i nuovi record siano sbilanciati, perché tutti i tuoi record esistenti sono sbilanciati?)

Per quanto riguarda la metrica delle prestazioni, otterrai sempre ciò che chiedi. Se la precisione non è ciò di cui hai bisogno soprattutto in un set sbilanciato, perché non solo le classi ma anche i costi di classificazione errata sono sbilanciati, quindi non utilizzarlo. Se hai usato l'accuratezza come metrica e hai fatto tutta la selezione del tuo modello e la messa a punto dell'iperparametro prendendo sempre quello con la migliore accuratezza, stai ottimizzando per l'accuratezza.

Prendo la classe di minoranza come classe positiva, questo è il modo convenzionale di nominarli. Pertanto precisione e richiamo, come discusso di seguito, sono precisione e richiamo della classe di minoranza.

  • Se l'unica cosa importante è identificare tutti i record della classe di minoranza, è possibile richiamare. Stai quindi accettando più falsi positivi.
  • L'ottimizzazione della sola precisione sarebbe un'idea molto strana. Diresti al tuo classificatore che non è un problema sottovalutare la classe di minoranza. Il modo più semplice per avere un'alta precisione è quello di essere troppo cauti nel dichiarare la classe di minoranza.
  • Se hai bisogno di precisione e richiamo, potresti prendere la misura F. È la media armonica tra precisione e richiamo e quindi penalizza i risultati in cui entrambe le metriche divergono.
  • Se conosci i costi concreti di classificazione errata in entrambe le direzioni (e i profitti della classificazione corretta se sono diversi per classe), puoi mettere tutto ciò in una funzione di perdita e ottimizzarla.

3

Stai formulando diverse ipotesi. È meglio pensare all'obiettivo finale in termini generali, quindi formulare una strategia che soddisfi tale obiettivo. Ad esempio, hai davvero bisogno di una classificazione a scelta forzata ed è il segnale: il rapporto di rumore abbastanza grande da supportarlo (buoni esempi: riconoscimento di suoni e immagini)? O è il segnale: rapporto di rumore basso o sei interessato alle tendenze ? Per quest'ultimo, la stima del rischio è per te. La scelta è fondamentale e determina la metrica di precisione predittiva scelta. Per ulteriori riflessioni su tutto ciò, consultare http://www.fharrell.com/2017/01/classification-vs-prediction.html e http://www.fharrell.com/2017/03/damage-caused-by-classification .html .

La maggior parte dei problemi riguarda il processo decisionale e le decisioni ottimali derivano dalla stima del rischio unita a una funzione di perdita / costo / utilità.

Uno dei migliori aspetti di un approccio di stima del rischio (probabilità) è che gestisce le zone grigie in cui sarebbe un errore fare una classificazione o una decisione senza acquisire più dati. E poi c'è il fatto che la stima della probabilità non richiede (anche non permette) di "bilanciare" i risultati manipolando artificialmente il campione.


1

Per quanto riguarda la tua domanda sull'eventuale ponderazione dei campioni di allenamento equivale a moltiplicare la perdita in uno dei due casi per una costante: sì, lo è. Un modo per scrivere la funzione di perdita della regressione logistica è dove e indicano le rispettive istanze positive e negative, e è il classificatore logistico creato dalle funzionalità . Se vuoi dare più peso ai tuoi casi negativi, ad esempio, potresti voler modificare la tua perdita come

j=1Jlog{1+exp[f(xj)]}+k=1Klog{1+exp[f(xk)]}
jkf()x
w>1ww=2
j=1Jlog{1+exp[f(xj)]}+k=1Kwlog{1+exp[f(xk)]}
per alcuni . Questa funzione di perdita è ridotta al minimo dalle implementazioni software della regressione logistica ponderata, ma potresti anche arrivare alla stessa risposta aumentando le tue istanze negative di un fattore di e adattando una regressione logistica standard (ad esempio, se , quindi crei 2 copie di ogni istanza negativa e adattamento). Alcuni ulteriori dettagli su questo tipo di approccio qui . E c'è un avvertimento generale su cosa succede agli errori standard dei parametri qui , ma questo potrebbe non essere un problema se stai solo facendo una previsione.w>1ww=2

Ma quello non sarebbe più uno stimatore della massima verosimiglianza - un no-no statistico
Frank Harrell,

1
D'accordo, ma non sono convinto che sia importante se l'inferenza statistica sui parametri nella regressione logistica non è l'obiettivo desiderato (neanche la menzione del PO di utilizzare la CNN non è basata su ML). In effetti, la maggior parte / tutti i risultati inferenziali di questo approccio ponderato sarebbero meglio ignorati, ma il modello e i punteggi di rischio risultanti potrebbero ancora essere applicati a un set di validazione con risultati desiderabili, ad esempio una buona discriminazione / calibrazione.
Travis Gerke,

1
No, disturberai la calibrazione del modello e otterrai le stime dei parametri più rumorose con l'approccio sopra. MLE esiste per alcune ottime ragioni.
Frank Harrell,

Considera il caso banale di essere molto preoccupato per la classificazione errata in un modo, ma non nell'altro - cioè perdita zero per una delle direzioni. Il miglior modello per quella perdita prevederebbe solo la classe di preoccupazione. Anche se sarebbe un modello orribile, l'obiettivo è raggiunto. È importante comprendere l'obiettivo e non riporre la fede cieca in un concetto teorico (MLE) senza comprenderne lo scopo. Come notato da TravisGerke, se l'enfasi è sulla previsione piuttosto che sulla modellazione, il suo approccio è piuttosto utile. È certamente meglio che sottocampionare la classe di maggioranza.
Statseeker
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.