Comprensione della curva ROC


57

Ho difficoltà a comprendere la curva ROC.

C'è qualche vantaggio / miglioramento nell'area sotto la curva ROC se costruisco modelli diversi da ciascun sottoinsieme univoco dell'insieme di addestramento e lo uso per produrre una probabilità? Ad esempio, se ha valori di e costruisco il modello usando dal 1 ° al 4 ° valore di e dall'8 ° al 9 ° valore di e costruisci il modello usando i dati del treno rimasto. Infine, genera probabilità. Eventuali pensieri / commenti saranno molto apprezzati.{ a , a , a , a , b , b , b , b } A a y y By{un',un',un',un',B,B,B,B}UNun'yyB

Ecco il codice r per una migliore spiegazione della mia domanda:

Y    = factor(0,0,0,0,1,1,1,1)
X    = matirx(rnorm(16,8,2))
ind  = c(1,4,8,9)
ind2 = -ind

mod_A    = rpart(Y[ind]~X[ind,])
mod_B    = rpart(Y[-ind]~X[-ind,])
mod_full = rpart(Y~X)

pred = numeric(8)
pred_combine[ind]  = predict(mod_A,type='prob')
pred_combine[-ind] = predict(mod_B,type='prob')
pred_full          = predict(mod_full, type='prob')

Quindi la mia domanda è, area sotto la curva ROC di pred_combinevs pred_full.


3
Un esempio migliore farebbe molto per migliorare la domanda.
mpiktas,

La mia comprensione è che vuoi aumentare l'AUC scegliendo alcuni campioni specifici? Se questo è il tuo scopo, credo fermamente che questo approccio alla selezione distorta del campione sia completamente sbagliato, almeno se il tuo scopo è quello di trovare una buona misura per le prestazioni di classificazione.
rapaio,

2
dai un'occhiata alla demo interattiva di ROC
Alleo,

Risposte:


174

Non sono sicuro di avere la domanda, ma dal momento che il titolo richiede di spiegare le curve ROC, ci proverò.

Le curve ROC sono usate per vedere quanto bene il tuo classificatore può separare esempi positivi e negativi e per identificare la soglia migliore per separarli.

Per poter usare la curva ROC, il tuo classificatore deve essere in classifica , ovvero dovrebbe essere in grado di classificare esempi in modo tale che quelli con un rango più alto abbiano più probabilità di essere positivi. Ad esempio, la regressione logistica genera probabilità, che è un punteggio che è possibile utilizzare per la classifica.

Disegno della curva ROC

Dato un set di dati e un classificatore di classificazione:

  • ordina gli esempi di test in base al punteggio dal più alto al più basso
  • iniziare tra (0,0)
  • per ogni esempio nell'ordine ordinato X
    • X1/pos
    • X1/neg

posneg

Questa bella immagine gif animata dovrebbe illustrare questo processo in modo più chiaro

costruendo la curva

yX

Area sotto ROC

area sotto roc

L'area sotto la curva ROC (ombreggiata) mostra naturalmente quanto dista la curva dalla linea di base. Per la linea di base è 0,5 e per il classificatore perfetto è 1.

Puoi leggere ulteriori informazioni su AUC ROC in questa domanda: Cosa significa AUC e che cos'è?

Selezione della soglia migliore

Descriverò brevemente il processo di selezione della soglia migliore e ulteriori dettagli sono disponibili nel riferimento.

Per selezionare la soglia migliore, ogni punto della curva ROC viene visualizzato come un classificatore separato. Questo mini-classificatore utilizza il punteggio ottenuto dal punto come un confine tra + e - (ovvero classifica come + tutti i punti sopra quello attuale)

A seconda della frazione pos / neg nel nostro set di dati - parallelo alla linea di base in caso di 50% / 50% - costruisci linee di precisione ISO e prendi quella con la massima precisione.

Ecco una foto che lo illustra e per i dettagli ti invito di nuovo al riferimento

selezionando la soglia migliore

Riferimento


Grazie per l'ottimo commento! Mi dispiace di non aver potuto votare per la tua risposta, sembra che debba avere più di 15 reputazione :(
Tay Shin

Solo curioso, la dimensione del tuo passo dovrebbe dipendere dal numero di etichette positive / negative prodotte dal tuo classificatore corretto? Vale a dire nella gif, la dimensione del passo verso l'alto è .1, se avessi un'etichetta extra positiva (al posto di un'etichetta negativa), la "curva" finirebbe a 1.1 sull'asse verticale (o forse mi manca qualcosa ?). Quindi, in quel caso la dimensione del tuo passo deve essere più piccola?
Kyphos,

No, la dimensione del passo dipende dal numero di esempi positivi / negativi nel set di dati, non dall'accuratezza del classificatore.
Alexey Grigorev,

2
@gung capito. Alexey: invece di esempi positivi e negativi, penso che dovrebbe essere: veri positivi e falsi positivi. Potresti essere in grado di vedere la mia edizione della risposta, che è stata ripristinata da Gung. grazie
Escachator il

3
@AlexeyGrigorev, adoro la risposta che dai e vota. Non sono sicuro se ci sono due definizioni ROC. Mi riferisco alla definizione ROC qui ( en.wikipedia.org/wiki/Receiver_operating_characteristic ), l'asse x dovrebbe essere un tasso di falsi positivi, che è (# di previsioni per essere positivo, ma dovrebbe essere negativo) / (# del totale negativo), penso nel riferimento, penso che l'asse x non stia disegnando un tasso di falsi positivi, che non considera il (# del totale negativo)?
Lin Ma,
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.