Risposte:
Un predittore perfetto dà un punteggio AUC-ROC di 1, un predittore che fa ipotesi casuali ha un punteggio AUC-ROC di 0,5.
Se si ottiene un punteggio pari a 0, ciò significa che il classificatore è perfettamente errato, prevede una scelta errata al 100% delle volte. Se hai appena cambiato la previsione di questo classificatore con la scelta opposta, allora potrebbe prevedere perfettamente e avere un punteggio AUC-ROC di 1.
Quindi, in pratica, se ottieni un punteggio AUC-ROC compreso tra 0 e 0,5, potresti avere un errore nel modo in cui hai etichettato i tuoi obiettivi di classificazione o potresti avere un algoritmo di allenamento scadente. Se ottieni un punteggio di 0,2, questo mostra che i dati contengono informazioni sufficienti per ottenere un punteggio di 0,8 ma qualcosa è andato storto.
Possono, se il sistema che stai analizzando funziona al di sotto del livello casuale. In sostanza, potresti facilmente costruire un classificatore con 0 AUC facendolo sempre rispondere in senso contrario alla verità.
In pratica, naturalmente, si allena il proprio classificatore su alcuni dati, quindi valori molto inferiori a 0,5 indicherebbero in genere un errore nell'algoritmo, nelle etichette dei dati o nella scelta dei dati del treno / test. Ad esempio, se hai scambiato per errore le etichette di classe nei dati del tuo treno, la tua AUC prevista sarebbe 1 meno la AUC "vera" (con le etichette corrette). L'AUC potrebbe anche essere <0,5 se si dividono i dati in treni e testare le partizioni in modo tale che i modelli da classificare fossero sistematicamente diversi. Ciò potrebbe accadere (ad esempio) se una classe fosse più comune nel treno rispetto al set di test o se i pattern di ciascun set avessero intercettazioni sistematicamente diverse per le quali non è stato corretto.
Infine, potrebbe anche accadere in modo casuale perché il tuo classificatore è a livello casuale nel lungo periodo, ma è capitato di ottenere "sfortunato" nel tuo campione di test (cioè ottenere alcuni più errori che successi). Ma in quel caso i valori dovrebbero essere relativamente vicini a 0,5 (quanto vicino dipende dal numero di punti dati).
Mi dispiace, ma queste risposte sono pericolosamente sbagliate. No, non puoi semplicemente capovolgere l'AUC dopo aver visto i dati. Immagina di acquistare azioni e di aver sempre acquistato quella sbagliata, ma hai detto a te stesso, quindi va bene, perché se acquistassi il contrario di quello che il tuo modello prevedeva, allora guadagneresti.
Il fatto è che ci sono molte, spesso non ovvie ragioni per cui è possibile distorcere i risultati e ottenere prestazioni costantemente al di sotto della media. Se ora capovolgi la tua AUC, potresti pensare di essere il miglior modellatore al mondo, sebbene non ci sia mai stato alcun segnale nei dati.
Ecco un esempio di simulazione. Si noti che il predittore è solo una variabile casuale senza relazione con il target. Si noti inoltre che l'AUC media è di circa 0,3.
library(MLmetrics)
aucs <- list()
for (sim in seq_len(100)){
n <- 100
df <- data.frame(x=rnorm(n),
y=c(rep(0, n/2), rep(1, n/2)))
predictions <- list()
for(i in seq_len(n)){
train <- df[-i,]
test <- df[i,]
glm_fit <- glm(y ~ x, family = 'binomial', data = train)
predictions[[i]] <- predict(glm_fit, newdata = test, type = 'response')
}
predictions <- unlist(predictions)
aucs[[sim]] <- MLmetrics::AUC(predictions, df$y)
}
aucs <- unlist(aucs)
plot(aucs); abline(h=mean(aucs), col='red')
risultati
Naturalmente, non è possibile che un classificatore apprenda qualcosa dai dati poiché i dati sono casuali. La breve possibilità che AUC sia presente perché LOOCV crea un set di allenamento parziale e sbilanciato. Tuttavia, ciò non significa che se non usi LOOCV, sei al sicuro. Il punto di questa storia è che ci sono modi, molti modi in cui i risultati possono avere prestazioni medie inferiori anche se non c'è nulla nei dati, e quindi non dovresti capovolgere le previsioni se non sai cosa stai facendo. E dal momento che hai una performance media inferiore, non vedi cosa stai facendo :)
Ecco un paio di articoli che hanno toccato questo problema, ma sono sicuro che anche altri lo hanno fatto
Jamalabadi et al 2016 https://onlinelibrary.wiley.com/doi/full/10.1002/hbm.23140
Snoek et al 2019 https://www.ncbi.nlm.nih.gov/pubmed/30268846