Vantaggi delle curve ROC


15

Quali sono i vantaggi delle curve ROC?

Ad esempio sto classificando alcune immagini che è un problema di classificazione binaria. Ho estratto circa 500 funzionalità e applicato un algoritmo di selezione delle funzionalità per selezionare un set di funzionalità, quindi ho applicato SVM per la classificazione. In questo caso come posso ottenere una curva ROC? Devo modificare i valori di soglia del mio algoritmo di selezione delle caratteristiche e ottenere sensibilità e specificità dell'output per disegnare una curva ROC?

Nel mio caso, qual è lo scopo di creare una curva ROC?


2
"Un'introduzione all'analisi ROC" di Tom Fawcett mi ha aiutato a comprendere meglio le curve ROC. Potrebbe piacerti se stai cercando ulteriore letteratura sull'argomento.
Alexander,

Va bene, ma cosa faresti per confrontare due classificatori? Se usano le soglie in modo tale che la specificità e la sensibilità dei nether corrispondano molto da vicino, non penso che sia facile confrontarsi senza guardare altri punti del ROC.
Michael R. Chernick,

Raramente è opportuno sviluppare classificatori e l'errore di classificazione è una regola di punteggio impropria. Esistono molti metodi ad alta potenza per confrontare la qualità delle previsioni vere e sono più intuitivi delle curve ROC. Vedi per esempio questo .
Frank Harrell,

Risposte:


13

Molti algoritmi di classificazione binaria calcolano una sorta di punteggio di classificazione (a volte, ma non sempre, questa è una probabilità di trovarsi nello stato target) e si classificano in base al fatto che il punteggio superi o meno una determinata soglia. La visualizzazione della curva ROC consente di vedere il compromesso tra sensibilità e specificità per tutte le soglie possibili anziché solo quella scelta dalla tecnica di modellazione. Obiettivi di classificazione diversi potrebbero rendere un punto della curva più adatto per un'attività e un altro più adatto per un'attività diversa, quindi guardare la curva ROC è un modo per valutare il modello indipendentemente dalla scelta di una soglia.


Grazie per la risposta. È davvero utile Sulla base della curva ROC c'è comunque per determinare la soglia? E nel mio caso come posso ottenere un punto nello spazio ROC per sensibilità = 100% o specificità = 100%. perché sto cambiando la soglia dell'algoritmo di selezione delle funzionalità.
user570593,

1
La curva ROC mostra la sensibilità e la specificità a tutte le soglie possibili, quindi se trovi un punto che rappresenta il giusto compromesso, puoi scegliere la soglia che corrisponde a quel punto sulla curva.
Michael McGowan,

Esiste un modo automatico per selezionare il giusto compromesso o devo selezionare il compromesso da solo? E nel mio caso come posso ottenere un punto nello spazio ROC per sensibilità = 100% o specificità = 100%. perché sto cambiando la soglia dell'algoritmo di selezione delle funzionalità.
user570593,

2
Se hai un criterio ben definito (ad esempio per massimizzare la precisione), questo può essere automatizzato. Ma un buon compromesso per un problema potrebbe essere pessimo per un altro.
Michael McGowan,

2
La sensibilità o la specificità del 100% possono essere ottenute banalmente impostando la soglia sul valore minimo o massimo ... è davvero quello che vuoi?
Michael McGowan,

11

Le curve ROC non sono informative nel 99% dei casi che ho visto negli ultimi anni. Sembrano essere considerati obbligatori da molti statistici e da ancora più professionisti dell'apprendimento automatico. E assicurati che il tuo problema sia davvero un problema di classificazione e non un problema di stima del rischio. Il cuore dei problemi con le curve ROC è che invitano gli utenti a usare i punti di interruzione per variabili continue e usano le probabilità all'indietro, cioè le probabilità di eventi che sono in ordine di tempo inverso (sensibilità e specificità). Le curve ROC non possono essere utilizzate per trovare compromessi ottimali, tranne in casi molto speciali in cui gli utenti di una regola decisionale rinunciano all'analista la loro funzione di perdita (costo; utilità).


Non sono completamente d'accordo con Frank. Penso che l'utilizzo dell'AUC del ROC sia spesso un problema. Ma qualitativamente penso che possa essere utile confrontare algoritmi. Guardare specificità e sensibilità in un singolo punto non è altrettanto informativo. Inoltre, non sono sicuro che la sua risposta affronti davvero la domanda perché l'OP vuole davvero sapere nel suo caso perché rientra nei casi non informativi del 99% o nell'1% che sono inforamtivi.
Michael R. Chernick,

R2

R2

1
@FrankHarrell Ma come si confrontano due algoritmi quando non si adattano molto da vicino a specificità e sensibilità?
Michael R. Chernick,

7
R2χ2R2

1

Dopo aver creato una curva ROC, è possibile calcolare l'AUC (area sotto la curva). L'AUC è l'accuratezza del test attraverso molte soglie. AUC = 1 significa che il test è perfetto. AUC = .5 significa esibirsi a caso per la classificazione binaria.

Se ci sono più modelli, AUC fornisce una singola misurazione da confrontare tra diversi modelli. Ci sono sempre compromessi con ogni singola misura, ma l'AUC è un buon punto di partenza.


1
YcDxy

0

L'AUC non confronta le classi reali con quelle previste tra loro. Non sta guardando la classe prevista, ma il punteggio di previsione o la probabilità. Puoi fare la previsione della classe applicando un limite a questo punteggio, diciamo, ogni campione che ha ottenuto un punteggio inferiore a 0,5 è classificato come negativo. Ma il ROC viene prima che ciò accada. Sta lavorando con i punteggi / le probabilità di classe.

Prende questi punteggi e ordina tutti i campioni in base a quel punteggio. Ora, ogni volta che trovi un campione positivo, la curva ROC fa un passo avanti (lungo l'asse y). Ogni volta che trovi un campione negativo ti sposti a destra (lungo l'asse x). Se quel punteggio è diverso per le due classi, i campioni positivi vengono prima (di solito). Ciò significa che fai più passi avanti che a destra. Più in basso nell'elenco verranno i campioni negativi, quindi ti sposterai a sinistra. Quando si passa attraverso l'intero elenco di campioni, si raggiunge la coordinata (1,1) che corrisponde al 100% dei campioni positivi e al 100% dei campioni negativi.

Se il punteggio separa perfettamente i positivi dai campioni negativi, ci si sposta completamente da (x = 0, y = 0) a (1,0) e quindi da lì a (1, 1). Quindi, l'area sotto la curva è 1.

Se il tuo punteggio ha la stessa distribuzione per campioni positivi e negativi, le probabilità di trovare un campione positivo o negativo nell'elenco ordinato sono uguali e quindi le probabilità di spostarsi verso l'alto o a sinistra nella curva ROC sono uguali. Questo è il motivo per cui ti muovi lungo la diagonale, perché essenzialmente ti muovi verso l'alto e a sinistra, e verso l'alto e a sinistra, e così via ... che dà un valore AROC di circa 0,5.

Nel caso di un set di dati non bilanciato, la dimensione del passaggio è diversa. Quindi, fai piccoli passi a sinistra (se hai più campioni negativi). Ecco perché il punteggio è più o meno indipendente dallo squilibrio.

Quindi, con la curva ROC, puoi visualizzare come i tuoi campioni sono separati e l'area sotto la curva può essere un'ottima metrica per misurare le prestazioni di un algoritmo di classificazione binaria o qualsiasi variabile che può essere utilizzata per separare le classi.

inserisci qui la descrizione dell'immagine

La figura mostra le stesse distribuzioni con diverse dimensioni del campione. L'area nera mostra dove ci si aspetterebbe curve ROC di miscele casuali di campioni positivi e negativi.


Questi grafici non forniscono informazioni dettagliate e dispongono di un inchiostro eccezionalmente elevato: rapporto informazioni IMHO. Stick con punteggi di precisione adeguati: fharrell.com/post/class-damage fharrell.com/post/addvalue
Frank Harrell

Esistono molte più informazioni in questi grafici che in un singolo punteggio di precisione unidimensionale. Lo stesso punteggio può provenire da diverse distribuzioni. Hai un riconoscimento precoce? Hai più classi di campioni positivi che si comportano diversamente? Il tuo risultato è statisticamente significativo? A tutte queste domande può essere ovvio rispondere guardando quei grafici e impossibile rispondere con un solo punteggio di precisione.
Sören,

Dubito seriamente che i consumatori e gli analisti possano ottenere informazioni dettagliate da queste curve, tanto intuitive quanto la visualizzazione di una curva di calibrazione sovrapposta a un istogramma ad alta risoluzione che mostra i valori previsti. E ogni punto sulla curva ROC è un punteggio di precisione improprio.
Frank Harrell,

I principianti hanno spesso difficoltà a comprendere queste curve. Pertanto, non consiglierei necessariamente di mostrarlo ai consumatori per pubblicizzare il tuo prodotto. Penso che tu voglia qualcosa di più semplicistico. La curva è però più dei singoli punti.
Sören,
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.