Cosa significa AUC e cos'è?


228

Ho cercato in alto e in basso e non sono stato in grado di scoprire che cosa significhi o significhi l'AUC, come in relazione alla previsione.


8
Controlla la descrizione del auctag che hai usato: stats.stackexchange.com/questions/tagged/auc
Tim

4
Area Under the Curve (ovvero, curva ROC)
Andrej

7
I lettori qui potrebbero anche essere interessati al seguente thread: Comprensione della curva ROC .
gung

11
L'espressione "Cercati in alto e in basso" è interessante poiché puoi trovare molte definizioni / usi eccellenti per AUC digitando "AUC" o "Statistiche AUC" in google. Domanda appropriata, ovviamente, ma quell'affermazione mi ha colto di sorpresa!
Behacad,

3
Ho fatto Google AUC ma molti dei migliori risultati non hanno dichiarato esplicitamente AUC = Area Under Curve. La prima pagina di Wikipedia ad essa correlata ce l'ha ma non fino a metà strada. A posteriori sembra piuttosto ovvio! Grazie a tutti per alcune risposte davvero dettagliate
josh

Risposte:


309

Abbreviazioni

AUC è usato la maggior parte del tempo per indicare AUROC, che è una cattiva pratica poiché, come ha sottolineato Marc Claesen, AUC è ambiguo (potrebbe essere qualsiasi curva) mentre AUROC non lo è.


Interpretazione dell'AUROC

L'AUROC ha diverse interpretazioni equivalenti :

  • L'aspettativa che un positivo casuale disegnato in modo uniforme sia classificato prima di un negativo casuale disegnato in modo uniforme.
  • La percentuale attesa di positivi è stata classificata prima di un negativo casuale disegnato in modo uniforme.
  • Il tasso atteso vero positivo se la classifica viene divisa poco prima di un negativo casuale disegnato in modo uniforme.
  • La percentuale attesa di negativi è stata classificata dopo un positivo casuale disegnato in modo uniforme.
  • Il tasso di falsi positivi atteso se la classifica viene divisa subito dopo un positivo casuale disegnato in modo uniforme.

Andare oltre: come derivare l'interpretazione probabilistica dell'AUROC?


Calcolo dell'AUROC

Supponiamo di avere un classificatore binario probabilistico come la regressione logistica.

Prima di presentare la curva ROC (= curva caratteristica operativa del ricevitore), è necessario comprendere il concetto di matrice di confusione . Quando facciamo una previsione binaria, possono esserci 4 tipi di risultati:

  • Prevediamo 0 mentre la vera classe è effettivamente 0: questo è chiamato un vero negativo , cioè prevediamo correttamente che la classe è negativa (0). Ad esempio, un antivirus non ha rilevato un file innocuo come virus.
  • Prevediamo 0 mentre la vera classe è in realtà 1: questo è chiamato un falso negativo , ovvero prevediamo erroneamente che la classe è negativa (0). Ad esempio, un antivirus non è riuscito a rilevare un virus.
  • Prevediamo 1 mentre la vera classe è in realtà 0: questo si chiama Falso positivo , ovvero prevediamo erroneamente che la classe è positiva (1). Ad esempio, un antivirus considerato un file innocuo come virus.
  • Prevediamo 1 mentre la vera classe è in realtà 1: questo è chiamato un vero positivo , cioè prevediamo correttamente che la classe è positiva (1). Ad esempio, un antivirus ha correttamente rilevato un virus.

Per ottenere la matrice di confusione, esaminiamo tutte le previsioni fatte dal modello e contiamo quante volte si verificano ciascuno di quei 4 tipi di risultati:

inserisci qui la descrizione dell'immagine

In questo esempio di matrice di confusione, tra i 50 punti dati classificati, 45 sono correttamente classificati e 5 sono classificati erroneamente.

Dal momento che per confrontare due diversi modelli è spesso più conveniente avere un'unica metrica anziché più di una, calcoliamo due metriche dalla matrice di confusione, che in seguito combineremo in una sola:

  • TPTP+FN
  • FPFP+TN

0.00;0.01,0.02,,1.00

La seguente figura mostra graficamente AUROC:

inserisci qui la descrizione dell'immagine

In questa figura, l'area blu corrisponde all'Area sotto la curva della caratteristica operativa del ricevitore (AUROC). La linea tratteggiata nella diagonale presentiamo la curva ROC di un predittore casuale: ha un AUROC di 0,5. Il predittore casuale è comunemente usato come base per vedere se il modello è utile.

Se vuoi fare un'esperienza di prima mano:


4
Spiegazione brillante. Grazie. Una domanda solo per chiarire che ho capito: ho ragione nel dire che, su questo grafico, un quadrato blu solido avrebbe una curva ROC (AUC = 1) e sarebbe un buon modello di previsione? Presumo che ciò sia teoricamente possibile.
josh

25
@josh Sì, esatto. AUROC è compreso tra 0 e 1 e AUROC = 1 indica che il modello di previsione è perfetto. In effetti, più lontano l'AUROC è da 0,5, meglio è: se AUROC <0,5, allora devi solo invertire la decisione che il tuo modello sta prendendo. Di conseguenza, se AUROC = 0, questa è una buona notizia perché devi solo invertire l'output del tuo modello per ottenere un modello perfetto.
Franck Dernoncourt,

1
il collegamento "diverse interpretazioni equivalenti" è interrotto.
Haitao Du,

1
Nelle interpretazioni AUROC "Il tasso di falsi positivi attesi se la classifica viene divisa subito dopo un positivo casuale disegnato in modo uniforme". Non dovrebbe essere questo (1 - FPR)?
Mudit Jain,

1
@ ryu576 idealmente il numero di punti nella curva ROC è effettivamente il numero di campioni di prova.
Franck Dernoncourt,

60

Anche se sono un po 'in ritardo alla festa, ma ecco i miei 5 centesimi. @FranckDernoncourt (+1) ha già menzionato possibili interpretazioni di AUC ROC, e la mia preferita è la prima della sua lista (io uso una formulazione diversa, ma è la stessa):

P(score(x+)>score(x))

Considera questo esempio (auc = 0.68):

inserisci qui la descrizione dell'immagine

Proviamo a simularlo: tracciamo esempi casuali positivi e negativi e quindi calcoliamo la percentuale di casi in cui i positivi hanno un punteggio maggiore rispetto ai negativi

cls = c('P', 'P', 'N', 'P', 'P', 'P', 'N', 'N', 'P', 'N', 'P',
        'N', 'P', 'N', 'N', 'N', 'P', 'N', 'P', 'N')
score = c(0.9, 0.8, 0.7, 0.6, 0.55, 0.51, 0.49, 0.43, 0.42, 0.39, 0.33, 
          0.31, 0.23, 0.22, 0.19, 0.15, 0.12, 0.11, 0.04, 0.01)

pos = score[cls == 'P']
neg = score[cls == 'N']

set.seed(14)
p = replicate(50000, sample(pos, size=1) > sample(neg, size=1))
mean(p)

E otteniamo 0,67926. Abbastanza vicino, vero?

 

A proposito, in RI di solito si usa il pacchetto ROCR per disegnare curve ROC e calcolare l'AUC.

library('ROCR')

pred = prediction(score, cls)
roc = performance(pred, "tpr", "fpr")

plot(roc, lwd=2, colorize=TRUE)
lines(x=c(0, 1), y=c(0, 1), col="black", lwd=1)

auc = performance(pred, "auc")
auc = unlist(auc@y.values)
auc

inserisci qui la descrizione dell'immagine


Bello. Il secondo blocco grigio chiarisce definitivamente il metodo di stampa.
josh

+1 (da prima). Sopra ho collegato un altro thread in cui hai dato un contributo molto carino a un argomento correlato. Questo qui fa un ottimo lavoro complimentandomi con il post di @ FranckDernoncourt e contribuendo a perfezionarlo ulteriormente.
gung

1
Nella curva ROC prodotta dal pacchetto R, cosa significa il colore? Potete per favore aggiungere alcuni dettagli ad esso. Grazie !
Prradep

Sarebbe probabilmente utile aggiungere veri positivi e veri negativi alla spiegazione nella casella grigia sopra? Altrimenti potrebbe essere un po 'confuso.
cbellei,

42

Considerazioni importanti non sono incluse in nessuna di queste discussioni. Le procedure sopra discusse invitano a soglie inadeguate e utilizzano regole (proporzioni) di punteggio di precisione impropria che vengono ottimizzate scegliendo le caratteristiche sbagliate e dando loro i pesi sbagliati.

La dicotomizzazione delle previsioni continue vola di fronte alla teoria delle decisioni ottimale. Le curve ROC non forniscono approfondimenti fruibili. Sono diventati obbligatori senza che i ricercatori abbiano esaminato i benefici. Hanno un inchiostro molto grande: rapporto di informazione.

Le decisioni ottimali non considerano "positivi" e "negativi" ma piuttosto la probabilità stimata del risultato. La funzione di utilità / costo / perdita, che non ha alcun ruolo nella costruzione del ROC, quindi l'inutilità dei ROC, viene utilizzata per tradurre la stima del rischio nella decisione ottimale (ad esempio, la perdita minima prevista).

L'obiettivo di un modello statistico è spesso quello di fare una previsione e l'analista dovrebbe spesso fermarsi lì perché l'analista potrebbe non conoscere la funzione di perdita. I componenti chiave della previsione per convalidare unbiasedly (ad esempio, utilizzando il bootstrap) sono la discriminazione predittiva (una semi-buon modo per misurare questo è la probabilità concordanza che risulta uguale l'area sotto la ROC, ma può essere più facilmente compresa se si don 't disegnare il ROC) e la curva di calibrazione. La convalida della calibrazione è davvero molto necessaria se si utilizzano previsioni su una scala assoluta.

Vedere il capitolo Perdita di informazioni in Biostatistica per la ricerca biomedica e altri capitoli per ulteriori informazioni.


2
Ogni altra risposta si concentra su formule matematiche che non hanno utilità pratica. E l'unica risposta corretta ha il minor numero di voti.
max

6
Sono stato alla ricezione di risposte apparentemente criptiche su questo argomento dal professor Harrell - sono fantastici nel modo in cui ti costringono a pensare sodo. Ciò in cui credo che stia suggerendo è che non si desidera accettare casi di falsi negativi in ​​un test di screening per l'HIV (esempio immaginario), anche se accettare una percentuale più elevata di falsi negativi (riducendo contemporaneamente i falsi positivi) potrebbe porre il punto di interruzione ai massimi AUC. Ci scusiamo per la brutale eccessiva semplificazione.
Antoni Parellada,


17

L'AUC è un'abbreviazione per l' area sotto la curva . Viene utilizzato nell'analisi della classificazione per determinare quale dei modelli utilizzati predice meglio le classi.

Un esempio della sua applicazione sono le curve ROC. Qui, i tassi positivi reali vengono tracciati rispetto ai tassi falsi positivi. Un esempio è sotto. Più l'AUC di un modello si avvicina a 1, meglio è. Quindi i modelli con AUC più alti sono preferiti a quelli con AUC più bassi.

Si noti che esistono anche altri metodi oltre alle curve ROC, ma sono anche correlati ai tassi di positività positivi e falsi positivi, ad esempio curve di richiamo di precisione, punteggio F1 o Lorenz.

                                            Esempio di curva ROC


2
puoi spiegare la curva ROC nel contesto di una semplice convalida incrociata del risultato 0/1? Non so capire molto bene come sia costruita la curva in quel caso.
Curioso il

10

τ

  1. A
  2. BA
  3. τ

P(A>τ)P(B>τ)

τAUC

Noi abbiamo:

AUC=01TPR(x)dx=01P(A>τ(x))dx
xxTPR

(1)AUC=Ex[P(A>τ(x))]
xU[0,1)

xFPR

x=FPR=P(B>τ(x))
x

P(B>τ(x))U
=>P(B<τ(x))(1U)U
(2)=>FB(τ(x))U

XFX(Y)UYX

FX(X)=P(FX(x)<X)=P(X<FX1(X))=FXFX1(X)=X

τ(x)B

Sostituendo questo nell'equazione (1) otteniamo:

AUC=Ex(P(A>B))=P(A>B)

In altre parole, l'area sotto la curva è la probabilità che un campione positivo casuale abbia un punteggio più alto rispetto a un campione negativo casuale.

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.