Perché l'accuratezza non è la misura migliore per valutare i modelli di classificazione?


107

Questa è una domanda generale che è stata posta indirettamente più volte qui, ma manca di un'unica risposta autorevole. Sarebbe bello avere una risposta dettagliata a questo per il riferimento.

La precisione , la proporzione di classificazioni corrette tra tutte le classificazioni, è una misura molto semplice e molto "intuitiva", ma può essere una misura scadente per i dati squilibrati . Perché la nostra intuizione ci guida male qui e ci sono altri problemi con questa misura?

Risposte:


112

La maggior parte delle altre risposte si concentra sull'esempio delle classi sbilanciate. Sì, questo è importante. Tuttavia, sostengo che l'accuratezza è problematica anche con classi equilibrate.

Frank Harrell ha scritto di questo sul suo blog: Classificazione vs. Previsione e danni causati dalla precisione della classificazione e da altre regole discontinue per il calcolo della precisione impropria .

In sostanza, la sua argomentazione è che la componente statistica dell'esercizio si interrompe quando si genera una probabilità per ogni classe del nuovo campione. Mappatura queste probabilità previste per una classificazione 0-1, scegliendo una soglia oltre la quale si classifica una nuova osservazione da 1 vs 0, non fa parte delle statistiche più . Fa parte del componente decisionale . E qui, hai bisogno dell'output probabilistico del tuo modello, ma anche di considerazioni come:(p^,1p^)

  • Quali sono le conseguenze della decisione di trattare una nuova osservazione come classe 1 vs. 0? Devo quindi inviare una mail di marketing a basso costo a tutti e 1? O applico un trattamento del cancro invasivo con grandi effetti collaterali?
  • Quali sono le conseguenze del trattamento di un "vero" 0 come 1 e viceversa? Spunterò un cliente? Sottoporre qualcuno a cure mediche non necessarie?
  • Le mie "classi" sono veramente discrete? O esiste effettivamente un continuum (ad esempio, la pressione sanguigna), in cui le soglie cliniche sono in realtà solo scorciatoie cognitive? Se sì, come ben al di là di una soglia è il caso io sono "classificare" in questo momento?
  • Oppure una probabilità bassa ma positiva di essere di classe 1 significa in realtà "ottenere più dati", "eseguire un altro test"?

A seconda delle conseguenze della tua decisione, utilizzerai una soglia diversa per prendere la decisione. Se l'azione è un intervento chirurgico invasivo, avrai bisogno di una probabilità molto più alta per la tua classificazione del paziente come affetto da qualcosa che se l'azione è di raccomandare due aspirine. Oppure potresti anche prendere tre decisioni diverse anche se ci sono solo due classi (malato vs. sano): "vai a casa e non preoccuparti" vs. "esegui un altro test perché quello che abbiamo è inconcludente" vs. "operare immediatamente" .

Il modo corretto di valutare le probabilità previste non è confrontarle con una soglia, mapparle su base alla soglia e quindi valutare la trasformata classificazione. Invece, si dovrebbero usare le appropriate . Queste sono funzioni di perdita che associano le probabilità previste e i corrispondenti risultati osservati ai valori di perdita, che sono ridotti al minimo nelle aspettative dalle probabilità reali . L'idea è di prendere la media rispetto alla regola di punteggio valutata su più (migliori: molti) risultati osservati e le corrispondenti probabilità di appartenenza alla classe previste, come stima delle aspettative della regola di punteggio.(p^,1p^)( 0 , 1 ) ( 0 , 1 ) ( p , 1 - p )(0,1)(0,1)(p,1p)

Si noti che "corretta" qui ha un significato ben definito - ci sono regole di punteggio impropri così come le regole di punteggio corretto e, infine, le regole di punteggio rigorosamente corretto . Le regole di punteggio in quanto tali sono funzioni di perdita di densità e risultati predittivi. Le regole di punteggio corrette sono regole di punteggio che sono ridotte al minimo in previsione se la densità predittiva è la densità reale. Rigorosamente le regole di punteggio corretto abbiano una performance regole che sono solo ridotti al minimo in attesa se la densità predittiva è la vera densità.

Come osserva Frank Harrell , l'accuratezza è una regola di punteggio impropria. (Più precisamente, l' accuratezza non è nemmeno una regola di punteggio : vedi la mia risposta a L' accuratezza è una regola di punteggio impropria in un'impostazione di classificazione binaria? ) Questo può essere visto, ad esempio, se non abbiamo affatto predittori e solo un capovolgimento di una moneta ingiusta con probabilità . La precisione viene massimizzata se classifichiamo tutto come prima classe e ignoriamo completamente la probabilità del 40% che qualsiasi risultato possa essere nella seconda classe. (Qui vediamo che l'accuratezza è problematica anche per le classi bilanciate.) Le appropriate preferiranno una previsione alla(0.6,0.4)( 0.6 , 0.4 ) ( 1 , 0 )(0.6,0.4)(1,0) uno in attesa. In particolare, l'accuratezza è discontinua nella soglia: spostare la soglia di un pochino può far sì che una o più previsioni cambino le classi e modifichino l'intera accuratezza di un importo discreto. Questo ha poco senso.

Maggiori informazioni sono disponibili nei due post sul blog di Frank collegati sopra, così come nel capitolo 10 delle strategie di modellazione della regressione di Frank Harrell .

(Questo è spudoratamente paralizzato da una mia precedente risposta .)


MODIFICARE. La mia risposta a esempio quando si utilizza la precisione come misura di esito porterà ad una conclusione sbagliata dà un esempio illustrativo si spera in cui massimizzare la precisione può portare a decisioni sbagliate , anche per le classi equilibrate .


6
Il punto di Tim Frank (che ha discusso in numerose risposte sul nostro sito e altrove), a quanto ho capito, è che se un algoritmo di classificazione non restituisce probabilità allora è spazzatura e non dovrebbe essere usato. Ad essere onesti, la maggior parte degli algoritmi comunemente usati restituisce probabilità.
ameba,

6
Direi che un algoritmo che prende in considerazione osservazioni precedenti e produce solo classificazioni senza tenere conto dei punti sopra (ad esempio, i costi delle decisioni sbagliate) unisce l'aspetto statistico e quello decisionale. È come se qualcuno ti raccomandasse un particolare tipo di macchina senza prima chiederti se vuoi trasportare una piccola squadra di baseball della lega, un mucchio di materiali da costruzione o solo te stesso. Quindi direi anche che un tale algoritmo sarebbe spazzatura.
Stephan Kolassa,

8
Stavo per scrivere una risposta, ma poi non ne avevo bisogno. Bravo. Ne discuto con i miei studenti come una "separazione delle preoccupazioni" tra modellistica statistica e processo decisionale. Questo tipo di concetto è profondamente radicato nella cultura ingegneristica.
Matthew Drury,

8
@chainD: se il tuo classificatore (ricorda, è quello con la massima precisione ) dice che "tutti in questo campione sono in salute", allora quale medico o analista crederebbe che ci sia di più nella storia? Concordo sul fatto che alla fine sia un appello per l'analista, ma "tutti sono sani" è molto meno utile per l'analista di qualcosa che attiri l'attenzione sull'incertezza residua come la previsione del 95% / 5%.
Stephan Kolassa,

11
La risposta e i commenti di @StephanKolassa sono eccezionali. Qualcun altro commento ha insinuato che c'è una differenza nel modo in cui questo viene visto a seconda della cultura di cui fai parte. Questo non è davvero il caso; è solo che alcuni campi si sono preoccupati di capire la letteratura e altri no. Le previsioni del tempo, per esempio, sono state in prima linea e hanno usato le regole di punteggio adeguate per valutare l'accuratezza delle previsioni almeno dal 1951.
Frank Harrell,

78

Quando usiamo l'accuratezza, assegniamo lo stesso costo a falsi positivi e falsi negativi. Quando quel set di dati è sbilanciato - diciamo che ha il 99% di istanze in una classe e solo l'1% nell'altra - c'è un ottimo modo per ridurre i costi. Prevedi che ogni istanza appartiene alla classe di maggioranza, ottieni una precisione del 99% e vai a casa presto.

Il problema inizia quando i costi effettivi che assegniamo a ogni errore non sono uguali. Se abbiamo a che fare con una malattia rara ma fatale, il costo della mancata diagnosi della malattia di una persona malata è molto più alto del costo di inviare una persona sana a più test.

In generale, non esiste una misura migliore generale. La misura migliore deriva dalle tue esigenze. In un certo senso, non è una domanda di apprendimento automatico, ma una questione aziendale. È comune che due persone utilizzeranno lo stesso set di dati ma sceglieranno metriche diverse a causa di obiettivi diversi.

La precisione è una grande metrica. In realtà, la maggior parte delle metriche sono fantastiche e mi piace valutare molte metriche. Tuttavia, a un certo punto dovrai decidere se utilizzare il modello A o B. Qui dovresti utilizzare un'unica metrica che si adatta meglio alle tue esigenze.

Per ulteriore credito, scegli questa metrica prima dell'analisi, in modo da non essere distratto quando prendi la decisione.


3
Ottima risposta - Ho proposto un paio di modifiche solo per cercare di chiarire il punto ai principianti nell'apprendimento automatico (a chi è rivolta questa domanda).
Nekomatic

1
Non sarei d'accordo sul fatto che non si tratta di un problema di apprendimento automatico. Ma affrontarlo implicherebbe l'apprendimento automatico del meta-problema e richiederebbe alla macchina di avere accesso a qualche tipo di dati oltre alle semplici informazioni di classificazione.
Shufflepants,

3
Non lo vedo come una funzione dei soli dati poiché obiettivi diversi possono passare a costi / modello / prestazioni / metriche differenti. Concordo sul fatto che in generale la questione dei costi può essere gestita matematicamente. Tuttavia domande come il costo del trattamento dei pazienti si basano su informazioni totalmente diverse. Queste informazioni necessarie per i metadati di solito non sono adatte alla metodologia di apprendimento automatico, quindi nella maggior parte dei casi vengono gestite con metodi diversi.
DaL,

2
"Diagnosi errata di una persona con la malattia", intendi "diagnosi errata di una persona che ha la malattia (come non avere la malattia)", giusto? Perché quella frase potrebbe essere interpretata in entrambi i modi.
Tanner Swett,

Hai ragione Tanner. Ho modificato il test per renderlo più chiaro.
DaL,

20

Il problema con precisione

L'accuratezza standard è definita come il rapporto tra le classificazioni corrette e il numero di classificazioni effettuate.

accuracy:=correct classificationsnumber of classifications

È quindi su misura generale in tutte le classi e come vedremo a breve non è una buona misura distinguere un oracolo da un test utile reale. Un oracolo è una funzione di classificazione che restituisce un'ipotesi casuale per ciascun campione. Allo stesso modo, vogliamo essere in grado di valutare le prestazioni di classificazione della nostra funzione di classificazione. La precisione \ textit {può} essere una misura utile se abbiamo la stessa quantità di campioni per classe ma se abbiamo un insieme sbilanciato di accuratezza dei campioni non è affatto utile. Ancora di più, un test può avere un'elevata precisione ma in realtà ha prestazioni peggiori rispetto a un test con una precisione inferiore.

ABC0.9

classify(sample):={Aif 

classify

classify(sample):=guess{Awith p =0.96Bwith p =0.02Cwith p =0.02

0.960.9+0.020.052=0.866Aclassify

Precisione per classe

accuracy:=correct/(correct+incorrect)A1.00A0.331.000.00>0.5AABA

Sensibilità e specificità

Nei test medici la sensibilità è definita come il rapporto tra le persone correttamente identificate come affette dalla malattia e la quantità di persone che hanno effettivamente la malattia. La specificità è definita come il rapporto tra le persone correttamente identificate come sane e la quantità di persone che sono effettivamente sane. La quantità di persone che hanno effettivamente la malattia è la quantità di risultati di test positivi positivi più la quantità di risultati di test falsi negativi. La quantità di persone effettivamente sane è la quantità di risultati di test negativi reali più la quantità di risultati di test falsi positivi.

Classificazione binaria

PNTnnFnn

sensitivity:=TPTP+FNspecificity:=TNTN+FP

TPFNTNFPαβαTααTα+FβαTβαTβ+FααββTββTβ+FαβTαβTα+Fβ

sensitivityα:=TαTα+Fβspecificityα:=TβTβ+Fαsensitivityβ:=TβTβ+Fαspecificityβ:=TαTα+Fβ

sensitivityα=specificityβspecificityα=sensitivityβ. Ciò significa che se abbiamo solo due classi non abbiamo bisogno di sensibilità e specificità per classe.

Classificazione N-Ary

La sensibilità e la specificità per classe non sono utili se abbiamo solo due classi, ma possiamo estenderla a più classi. La sensibilità e la specificità sono definite come:

sensitivity:=true positivestrue positives+false negativesspecificity:=true negativestrue negatives+false-positives

Tni(Fn,i)i(Fi,n)ni(Ti)T(n)nni(k(Fi,k))nni(Fn,i)ni(Fi,n)i(Ti)T(n)+i(k(Fn,i))i(Fn,i)i(Fi,n). Come sintesi abbiamo:

true positives:=Tntrue negatives:=i(Ti)T(n)+i(k(Fn,i))i(Fn,i)i(Fi,n)false positives:=i(Fi,n)false negatives:=i(Fn,i)

sensitivity(n):=TnTn+i(Fn,i)specificity(n):=i(Ti)Tn+i(k(Fi,k))i(Fn,i)i(Fi,n)i(Ti)Tn+i(k(Fi,k))i(Fn,i)

Presentazione di fiducia

confidenceTn+i(Fi,n)nTn

confidence(n):=TnTn+i(Fi,n)

confidencenn

i(k(Fi,k))i(Fi,n)+i(Ti)Tni(Fn,i)

confidence(n)=i(k(Fi,k))i(Fi,n)+i(Ti)Tni(Fn,i)i(k(Fi,k))i(Fi,n)+i(Ti)Tn


Potete per favore fornire qualche esempio di calcolo della precisione media usando la matrice di confusione.
Aadnan Farooq,

Puoi trovare una descrizione più dettagliata con esempi qui: mroman.ch/guides/sensspec.html
mroman

Leggendolo di nuovo, c'è un errore nella definizione di confidence_false. Sono sorpreso che nessuno l'abbia notato. Lo aggiusterò nei prossimi giorni.
mroman,

8

Classi squilibrate nel set di dati

Per essere brevi: immagina, il 99% di una classe (ad esempio mele) e l'1% di un'altra classe è nel tuo set di dati (ad esempio banane). Il mio algoritmo super duper ottiene un'incredibile precisione del 99% per questo set di dati, dai un'occhiata:

return "it's an apple"

Avrà ragione il 99% delle volte e quindi avrà una precisione del 99%. Posso venderti il ​​mio algoritmo?

Soluzione: non usare una misura assoluta (precisione) ma una misura relativa a ciascuna classe (ce ne sono molte là fuori, come ROC AUC)


No, l'AUC non è appropriata per un set di dati non bilanciato.
SiXUlm

@SiXUlm, puoi approfondirlo?
Mayou36,

P(D)/P(DC)P(T|D)P(F|DC)

Un'illustrazione più chiara può essere trovata qui: quora.com/… . Dai un'occhiata alla risposta di Jerry Ma.
SiXUlm

Non capisco ancora il tuo punto. Non è questo (compresa la Quora) quello che sto dicendo nella soluzione e che supporta esattamente la mia risposta? Il punto è che i priori non dovrebbero influenzare la metrica che misura le prestazioni della rete. Ciò che è appropriato dipende interamente dal tuo problema, ad esempio il migliore è ottimizzare per ogni possibile taglio . Quindi fatemi sapere: a) dal momento che è invariante per i priori, ma sensibili alle prestazioni, perché è quello appropriati? b) cos'altro pensi sia appropriato o quali caratteristiche sono richieste?
Mayou36,

2

La risposta di DaL è esattamente questa. Lo illustrerò con un esempio molto semplice di ... vendita di uova.

21

21

Se il tuo classificatore non commette errori, otterrai le entrate massime che puoi aspettarti. Se non è perfetto, allora:

  • 1
  • 1

Quindi l'accuratezza del tuo classificatore è esattamente quanto sei vicino alle entrate massime. È la misura perfetta.

a

  • a
  • 2a

a=0.00120.001

Se il classificatore riguarda la ricerca di documenti pertinenti in un database, ad esempio, è possibile confrontare "quanto" sprecare tempo nella lettura di un documento non pertinente rispetto alla ricerca di un documento pertinente.


1

L'accuratezza della classificazione è il numero di previsioni corrette diviso per il numero totale di previsioni.

La precisione può essere fuorviante. Ad esempio, in un problema in cui esiste uno squilibrio di classe elevata, un modello può prevedere il valore della classe di maggioranza per tutte le previsioni e ottenere un'elevata precisione di classificazione. Pertanto, sono necessarie ulteriori misure prestazionali come il punteggio F1 e il punteggio Brier.


-3

R2

R2

Come altri hanno notato, un altro problema con l'accuratezza è un'indifferenza implicita al prezzo del fallimento, ovvero un presupposto che tutte le classificazioni errate siano uguali. In pratica non lo sono e i costi per ottenere una classificazione errata dipendono fortemente dal soggetto e potresti preferire minimizzare un particolare tipo di errore piuttosto che massimizzare l'accuratezza.


2
Ronzio. (1) Suppongo che la valutazione dell'accuratezza o di qualsiasi altra metrica fuori campione venga compresa, quindi non vedo davvero come l'accuratezza abbia più di un problema specifico di overfitting . (2) se applichi un modello addestrato sulla popolazione A a una diversa popolazione B, allora stai confrontando le mele con le arance, e di nuovo non vedo davvero come questo sia un problema specifico per l'accuratezza .
Stephan Kolassa,

(1) Ciò nonostante costituisce un problema di accuratezza e la domanda riguarda l'uso dell'accuratezza come standard di riferimento. (2) Il punto di costruire un classificatore è usarlo sulle arance, non solo sulle mele. Dovrebbe essere abbastanza generale per catturare i segnali essenziali nei dati (in modo che esistano), piuttosto che essere un catechismo per i dati di allenamento.
James,
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.