Come scegliere tra ROC AUC e punteggio F1?


26

Di recente ho completato una competizione Kaggle in cui è stato utilizzato il punteggio roc auc secondo i requisiti della competizione. Prima di questo progetto, normalmente utilizzavo il punteggio f1 come metrica per misurare le prestazioni del modello. Andando avanti, mi chiedo come dovrei scegliere tra queste due metriche? Quando usare quali e quali sono i rispettivi pro e contro?

A proposito, ho letto l'articolo qui Quali sono le differenze tra AUC e punteggio F1? , ma non mi dice quando usare quale.

Grazie in anticipo per qualsiasi aiuto!

Risposte:


14

Nessuna delle misure elencate qui sono regole di valutazione della precisione adeguate, vale a dire regole ottimizzate da un modello corretto. Considera il punteggio di Brier e le misure basate sulla verosimiglianza come lo pseudo . L' indice (AUROC; probabilità di concordanza) non è corretto ma è buono per descrivere un singolo modello. Non è abbastanza sensibile da utilizzare per la scelta dei modelli o per il confronto anche di soli due modelli.R2c


Grazie per la tua risposta Frank! Ho bisogno di ulteriori chiarimenti per favore. Se potessimo scegliere solo tra i punteggi ROC AUC e F1, quale sceglieresti e perché? Quali sono i pro e i contro di entrambi?
George Liu,

2
Se ti è permesso solo scegliere tra -index e F1 non stai discutendo abbastanza forte. Il gold standard è la probabilità logaritmica, la verosimiglianza logaritmica o l'equivalente bayesiano (es. DIC). Accanto a questo c'è il punteggio di Brier. c
Frank Harrell,

2
Vedi citeulike.org/user/harrelfe/article/14321176 ; L'ho mostrato con le mie simulazioni. Se lo squilibrio non è dovuto a sovracampionamento / sottocampionamento, è possibile utilizzare qualsiasi regola di punteggio adeguata indipendentemente dallo squilibrio.
Frank Harrell,

1
@FrankHarrell: il link è morto, puoi ricontrollarlo?
SiXUlm

13

Formula di calcolo :

  • Precision TP / (TP + FP)
  • Richiama: TP / (TP + FN)
  • Punteggio F1 : 2 / (1 / P + 1 / R)
  • ROC / AUC : TPR = TP / (TP + FN), FPR = FP / (FP + TN)

ROC / AUC sono gli stessi criteri e anche la curva PR (precisione-richiamo) (punteggio F1, precisione, richiamo) è gli stessi criteri.

I dati reali tenderanno ad avere uno squilibrio tra campioni positivi e negativi. Questo squilibrio ha un grande effetto su PR ma non su ROC / AUC.

Quindi, nel mondo reale, la curva PR viene utilizzata di più poiché i campioni positivi e negativi sono molto irregolari. La curva ROC / AUC non riflette le prestazioni del classificatore, ma la curva PR può farlo.

Se fai solo l'esperimento in articoli di ricerca, puoi usare il ROC, i risultati sperimentali saranno più belli. D'altra parte, la curva PR utilizza il problema reale e ha una migliore interpretabilità.


7

Le risposte sopra sono entrambe buone.

SKew=negun'tioveeXun'mpleSpoSiotioveeXun'mpleS

Con dati sbilanciati, l'AUC fornisce ancora un valore specioso intorno allo 0,8. Tuttavia, è elevato a causa del grande FP, piuttosto che del grande TP (True positive).

Come nell'esempio seguente,

TP=155,   FN=182
FP=84049, TN=34088

Pertanto, quando si utilizza l'AUC per misurare le prestazioni del classificatore, il problema è che l'aumento dell'AUC non riflette realmente un classificatore migliore. È solo l'effetto collaterale di troppi esempi negativi. Puoi semplicemente provare nel tuo set di dati.

Fβ=(1+β2)precioSioonrecun'll(β2precioSioon)+recun'll

β

Quindi, i miei suggerimenti per i dati squilibrati sono simili a questo post . Puoi anche provare la tabella dei decili, che può essere costruita cercando "Tabelle di classificazione e decile due per due". Nel frattempo, sto anche studiando su questo problema e darò una misura migliore.


Se ti preoccupi delle prestazioni di un metodo, faresti meglio a usare il ROC per mostrare le sue prestazioni di classificazione, ma se ti preoccupi di più della previsione effettiva di veri positivi, il punteggio di F1 è il benvenuto nel settore.
Xiaorui Zhu,

2
In un contesto aziendale reale, è possibile stimare i costi dei falsi positivi e quelli dei falsi negativi. Quindi la classificazione finale dovrebbe basarsi su un modello probabilistico e una soglia di classificazione scelta per ridurre al minimo il costo delle classificazioni false. Non credo davvero che l'accuratezza o il punteggio F abbiano molte applicazioni reali per lo scienziato di dati disciplinato.
Matthew Drury,

Sì, sono d'accordo con la procedura del metodo di decisione che minimizza il costo della falsa classificazione rispetto alla probabilità e al modello di cut-off. E in alcuni casi, il costo asimmetrico può essere applicato a FP e FN. Ma il punto di precisione e il punteggio F è quello di verificare le prestazioni complessive di un modello o confrontare le prestazioni tra diversi modelli. In effetti, con i dati in mano come data scientist, la minimizzazione dei costi potrebbe essere sempre possibile. Ma sono curioso di sapere se lo scienziato dei dati in pratica ha bisogno della distribuzione (o della variazione) della soluzione del problema decisionale. Vorrei sapere se potevi condividerne alcuni con me
Xiaorui Zhu,

1
Personalmente, valuterei sempre la bontà di adattamento di un modello sulla base delle probabilità condizionali che prevede. Quindi confronterei sempre i modelli usando una regola di punteggio adeguata come la perdita del log, usando il bootstrap per assicurarmi che il miglioramento non sia rumore e magari integrare con l'AUC.
Matthew Drury,

2
Non penso sia vero. L'AUC è stata appositamente progettata per essere insensibile allo squilibrio di classe, ho fatto ampie simulazioni su questo e ho scoperto che era vero. Inoltre, quando si confrontano i modelli, dovrebbero essere basati su set di dati campionati dalla stessa popolazione, rendendo nullo qualsiasi problema con lo squilibrio di classe.
Matthew Drury,

4

Per mettere in parole molto semplici quando si ha uno squilibrio dei dati, ad esempio, la differenza tra il numero di esempi che si hanno per le classi positive e negative è grande, si dovrebbe sempre usare il punteggio F1. Altrimenti puoi usare le curve ROC / AUC.


La tua definizione di "squilibrio dei dati" è tale che utilizzeresti quasi sempre il punteggio F1, quindi non è di grande aiuto. Forse potresti approfondire un po 'questo?
jbowman

Mi ero perso una parola molto importante lì ... scuse. Modificata la mia risposta. Fammi sapere se hai bisogno di ulteriori chiarimenti.
balboa

1

Per alcuni problemi di classificazione multi-classe, l'analisi e la visualizzazione di ROC / AUC non è semplice. Puoi esaminare questa domanda, Come tracciare le curve ROC nella classificazione multiclasse? . In tale situazione, l'utilizzo del punteggio F1 potrebbe essere una metrica migliore.

E il punteggio F1 è una scelta comune per il problema di recupero delle informazioni e popolare nelle impostazioni del settore. Ecco un esempio ben spiegato, costruire modelli ML è difficile. Distribuirli in ambienti di lavoro reali è più difficile .


1

Se l'obiettivo della classificazione è il punteggio per probabilità, è meglio usare l'AUC che fa la media su tutte le soglie possibili. Tuttavia, se l'obiettivo della classificazione deve solo classificare tra due possibili classi e non richiede la probabilità che ogni classe sia prevista dal modello, è più appropriato fare affidamento sul punteggio F utilizzando una determinata soglia.

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.