Comprendre la courbe ROC

57

J'ai du mal à comprendre la courbe ROC.

Existe-t-il un avantage / amélioration de l'aire sous la courbe ROC si je construis différents modèles à partir de chaque sous-ensemble unique de l'ensemble d'apprentissage et que je l'utilise pour produire une probabilité? Par exemple, si a les valeurs de , et que je construise le modèle en utilisant de la 1ère à la 4ème valeur de et aux 8ème à la 9ème valeurs de et construire le modèle en utilisant les données de train restantes. Enfin, générer des probabilités. Toutes les pensées / commentaires seront très appréciés.y{a,a,a,a,b,b,b,b}AayyB

Voici le code pour mieux expliquer ma question:

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')

Donc , ma question est, surface courbe ROC de pred_combinevs pred_full.

Tay Shin
la source
3
Un meilleur exemple ferait beaucoup pour améliorer la question.
Mpiktas
Si j'ai bien compris, vous voulez augmenter la AUC en choisissant des échantillons spécifiques? Si tel est votre but, je suis fermement convaincu que cette approche de sélection d’échantillon biaisée est complètement fausse, du moins si votre but est de trouver une bonne mesure pour la performance de la classification.
rapaio
2
Regardez la démo interactive de ROC
Alleo

Réponses:

174

Je ne suis pas sûr d'avoir compris la question, mais comme le titre demande d'expliquer les courbes ROC, je vais essayer.

Les courbes ROC sont utilisées pour voir dans quelle mesure votre classificateur peut séparer les exemples positifs et négatifs et pour identifier le meilleur seuil pour les séparer.

Pour pouvoir utiliser la courbe ROC, votre classificateur doit être classé - c'est-à-dire qu'il doit pouvoir classer les exemples de manière à ce que ceux dont le classement est le plus élevé ont plus de chances d'être positifs. Par exemple, la régression logistique génère des probabilités, qui sont un score que vous pouvez utiliser pour le classement.

Dessin de la courbe ROC

Étant donné un ensemble de données et un classificateur de classement:

  • ordonner les exemples de test par le score du plus élevé au plus bas
  • commencer dans(0,0)
  • pour chaque exemple dans l'ordre de tri x
    • si est positif, déplacez vers le haut1 / posx1/pos
    • si est négatif, déplacez droite1 / negx1/neg

où et sont les fractions des exemples positifs et négatifs respectivement.negposneg

Cette belle image animée gif devrait illustrer ce processus plus clairement

construire la courbe

Sur ce graphique, l' axe est le taux de vrais positifs et l' axe est un taux de faux positifs. Notez la ligne diagonale - c'est la ligne de base, qui peut être obtenue avec un classificateur aléatoire. Plus notre courbe ROC est au-dessus de la ligne, mieux c'est.xyx

Zone sous ROC

zone sous roc

La zone située sous la courbe ROC (ombrée) indique naturellement à quelle distance se situe la courbe par rapport à la ligne de base. Pour la ligne de base, la valeur est 0,5 et pour le classificateur parfait, la valeur 1.

Vous pouvez en savoir plus sur le RDC AUC dans cette question: Que signifie AUC et en quoi consiste-t-il?

Sélection du meilleur seuil

Je vais décrire brièvement le processus de sélection du meilleur seuil. Vous trouverez plus de détails dans la référence.

Pour sélectionner le meilleur seuil, vous voyez chaque point de votre courbe ROC comme un classificateur séparé. Ce mini-classificateur utilise le score obtenu par le point comme limite entre + et - (c’est-à-dire qu'il classe + tous les points au-dessus du point actuel)

En fonction de la fraction pos / neg de notre ensemble de données - parallèlement à la ligne de base dans le cas des 50% / 50% - vous créez des lignes de précision ISO et prenez celle-ci avec la meilleure précision.

Voici une photo qui illustre cela et pour plus de détails, je vous invite à nouveau à la référence

sélection du meilleur seuil

Référence

Alexey Grigorev
la source
Merci pour le bon commentaire! Je suis désolé de ne pouvoir voter pour votre réponse. Il semble que j'ai besoin de plus de 15
Tay Shin
Juste curieux, votre taille de pas devrait dépendre du nombre d'étiquettes positives / négatives produites par votre classificateur correct? C'est-à-dire que dans le fichier gif, la taille du pas vers le haut est 0.1 ?) Donc, dans ce cas, la taille de votre pas doit être plus petite?
Cyphos
Non, la taille de l'étape dépend du nombre d'exemples positifs / négatifs dans le jeu de données et non de la précision du classificateur.
Alexey Grigorev
2
@gung compris. Alexey: au lieu d'exemples positifs et négatifs, je pense que cela devrait être: les vrais positifs et les faux positifs. Vous pourrez peut-être voir mon édition de la réponse, qui a été annulée par gung. merci
Escachator
3
@AlexeyGrigorev, aimez la réponse que vous donnez et votez. Je ne suis pas sûr s'il y a deux définitions ROC. Je fais référence à la définition de ROC ici ( en.wikipedia.org/wiki/Receiver_operating_characteristic ), l’axe des x devrait être un taux de faux positif, ce qui est (nombre de prédictions positives, mais négatif) / (nombre de négatif), je pense que dans la référence, je pense que l'axe des x ne dessine pas de taux de faux positifs, qui ne prend pas en compte le (nombre total de négatifs)?
Lin Ma