Qual è la formula per calcolare larea sotto la curva ROC da una tabella di contingenza?

Ad esempio, se la mia tabella è:

 True Value (gold standard) Positive | Negative | | | | | Test | Pos | A | B | Result | | | | | Neg | C | D | | | | | 

Commenti

  • ' non mi è chiaro se possa esserci una risposta utile a questa domanda. La curva delle caratteristiche operative del ricevitore (ROC) rappresenta la gamma di compromessi tra le classificazioni di veri positivi e falsi positivi poiché si altera la soglia per effettuare quella scelta dal modello. Una tabella di contingenza rappresenta i risultati della classificazione in una scelta particolare di quella soglia. Si potrebbe essere in grado di calcolare qualcosa come unarea (come fa una risposta proposta qui), ma ' non è chiaro che rappresenterebbe veramente larea sotto la curva ROC per il modello completo .
  • Se il tuo predittore è dicotomico e quindi cè solo una soglia, penso che lAUC fornisca ancora (alcune) informazioni utili.
  • @JeremyMiles per favore fornisci un esempio non banale di il predittore in cui esiste una sola soglia.
  • @PavelTyshevskyi – sicuro. (Non ricordo quale fosse il contesto per questa domanda). Lavoro con valutatori che classificano gli annunci. Un esempio è la pornografia (che è un male). Chiediamo ai valutatori " Questo annuncio riguarda la pornografia? " Dicono sì o no.

Risposta

Nel caso generale: puoi “t

La curva ROC mostra come varia sensibilità e specificità a ogni possibile soglia . Una tabella di contingenza è stata calcolata su una singola soglia e le informazioni su altre soglie sono andate perse. Pertanto non puoi calcolare la curva ROC da questi dati riepilogati.

Ma il mio il classificatore è binario, quindi ho ununica soglia

I classificatori binari non sono realmente binari. Anche se possono esporre solo una decisione binaria finale, tutti i classificatori che conosco si basano su una stima quantitativa sotto il cofano.

  • Un albero decisionale binario? Prova a costruire un albero di regressione.
  • Un classificatore SVM? Esegui una regressione vettoriale di supporto.
  • Regressione logistica? Ottieni accesso alle probabilità grezze.
  • Rete neurale? Usa loutput numerico di t lultimo strato invece.

Questo ti darà più libertà di scegliere la soglia ottimale per ottenere la migliore classificazione possibile per le tue esigenze.

Ma voglio davvero

Non dovresti davvero “t. Le curve ROC con poche soglie sottostimano in modo significativo la vera area sotto la curva (1). Una curva ROC con un singolo punto è lo scenario peggiore e qualsiasi confronto con un classificatore continuo sarà impreciso e fuorviante.

Dammi solo la risposta!

Ok, ok , hai vinto. Con un singolo punto possiamo considerare lAUC come la somma di due triangoli T e U:

Una curva ROC con una singola coppia (SP, SE) e due triangoli

Possiamo ottenere le loro aree in base alla tabella di contingenza (A, B, C e D come hai definito):

$$ \ begin {align *} T = \ frac {1 \ times SE} {2} & = \ frac {SE} {2} = \ frac {A} {2 (A + C)} \\ U = \ frac {SP \ times 1} {2} & = \ frac {SP} {2} = \ frac {D} {2 (B + D)} \ end {align *} $$

Ottenere lAUC: $$ \ begin {align *} AUC & = T + U \\ & = \ frac {A} {2 (A + C)} + \ frac {D} {2 (B + D)} \\ & = \ frac {SE + SP} {2} \ end { align *} $$

Per concludere

Puoi tecnicamente calcolare un ROC AUC per un classificatore binario dalla matrice di confusione. Ma nel caso non fossi chiaro, fammi ripetere unultima volta: NON FARE!

Riferimenti

(1) DeLong ER, DeLong DM, Clarke-Pearson DL: Confronto delle aree sotto due o più curve caratteristiche operative del ricevitore correlate: un approccio non parametrico. Biometria 1988,44: 837-845. https://www.jstor.org/stable/2531595

Commenti

  • Questo esempio con un unico punto può essere davvero fuorviante. Ad esempio, avere il punto su (1, 0) produrrà AUC = 1 secondo i tuoi calcoli. Larea sotto il punto è sempre zero. Se hai davvero bisogno di riassumere la tabella di contingenza, usa il punteggio f1 o linformazione.
  • @PavelTyshevskyi La curva ROC è sempre una curva, mai un singolo punto. Ricorda che mostra 1 specificità, che probabilmente è ciò che ti confonde.
  • @PavelTyshevskyi Voglio dire (1, 0) è in realtà 0 specificità 0 sensibilità, quindi lAUC sarà 0 come previsto.
  • Hai ' hai ragione, ' mi sono confuso con lasse. ' non suona ancora bene con (0, 0) e (1, 1) utilizzati per costruire unarea insieme a se, sp dalla matrice di contingenza, in qualche modo. Grazie per il chiarimento.
  • @PavelTyshevskyi puoi essere un po più specifico forse? La risposta è corretta e penso di aver indicato chiaramente perché non dovresti ' farlo in primo luogo. Ma ti assicuro che è assolutamente corretto.

Risposta

Quando dichiaro che sono tutte negative, allora sensibilità (y) = 0, 1 – specificità (x) = 0. Se rivendico il positivo / negativo in base ai risultati del test, allora y = A / (A + C), x = B / (B + D). Quando dico che sono tutti positivi, allora y = 1 ex = 1.

Basato su tre punti con coordinate (0,0) (A / (A + C), B / (B + D)) (1,1), (in ordine (y, x)), è facile calcolare larea sotto la curva usando la formula per larea del triangolo.

Risultato finale: Area = $ \ frac {AB + 2AD + 2CD} {(A + C) (B + D)} $ ? Deve essere verificato.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *