Que signifie AUC et qu'est-ce que c'est?

228

Cherché haut et bas et n'ont pas été en mesure de savoir ce que AUC, en ce qui concerne la prédiction, signifie ou signifie.

Josh
la source
8
Vérifiez la description de la aucbalise que vous avez utilisée: stats.stackexchange.com/questions/tagged/auc
Tim
4
Surface sous la courbe (courbe ROC)
Andrej
7
Les lecteurs ici peuvent également être intéressés par le fil suivant: Comprendre la courbe ROC .
gung
11
L’expression "Haut et bas" est intéressante car vous pouvez trouver d’excellentes définitions / utilisations de l’ASC en tapant "AUC" ou "statistiques AUC" dans Google. Question appropriée bien sûr, mais cette déclaration m'a juste pris au dépourvu!
Behacad
3
J'ai utilisé Google AUC, mais la plupart des meilleurs résultats ne mentionnaient pas explicitement AUC = Area Under Curve. La première page Wikipedia qui s'y rapporte ne l'a pas, mais jusqu'à la moitié. Rétrospectivement, cela semble plutôt évident! Merci à tous pour vos réponses très détaillées
josh

Réponses:

309

Les abréviations

Par AUC, on entend le plus souvent AUROC, ce qui est une mauvaise pratique puisque Marc Claesen l'a souligné, elle est ambiguë (pourrait être n'importe quelle courbe), contrairement à AUROC.


Interprétation de l'AUROC

L'AUROC a plusieurs interprétations équivalentes :

  • L'attente qu'un positif tiré au hasard uniformément est classé avant un négatif au hasard tiré uniformément.
  • La proportion attendue de positifs s'est classée avant un négatif aléatoire tiré uniformément.
  • Le véritable taux positif attendu si le classement est divisé juste avant un négatif aléatoire tiré de manière uniforme.
  • La proportion attendue de négatifs s'est classée après un positif tiré au hasard uniformément.
  • Le taux de faux positifs attendu si le classement est divisé juste après un positif positif tiré aléatoirement et uniformément.

Aller plus loin: Comment dériver l'interprétation probabiliste de l'AUROC?


Calculer l'AUROC

Supposons que nous ayons un classifieur binaire probabiliste tel que la régression logistique.

Avant de présenter la courbe ROC (= courbe caractéristique de fonctionnement du récepteur), il faut comprendre le concept de matrice de confusion . Lorsque nous faisons une prédiction binaire, il peut y avoir 4 types de résultats:

  • Nous prédisons 0 alors que la vraie classe est réellement 0: cela s'appelle un vrai négatif , c'est-à-dire que nous prédisons correctement que la classe est négative (0). Par exemple, un antivirus n'a pas détecté un fichier inoffensif en tant que virus.
  • Nous prédisons 0 alors que la vraie classe est réellement 1: cela s'appelle un faux négatif , c'est-à-dire que nous prédisons à tort que la classe est négative (0). Par exemple, un antivirus n'a pas réussi à détecter un virus.
  • Nous prédisons 1 alors que la vraie classe est réellement 0: cela s'appelle un faux positif , c'est-à-dire que nous prédisons incorrectement que la classe est positive (1). Par exemple, un antivirus considère un fichier inoffensif comme un virus.
  • Nous prédisons 1 alors que la vraie classe est en réalité 1: cela s'appelle un vrai positif , c'est-à-dire que nous prédisons correctement que la classe est positive (1). Par exemple, un antivirus a correctement détecté un virus.

Pour obtenir la matrice de confusion, nous passons en revue toutes les prédictions faites par le modèle et comptons combien de fois chacun de ces 4 types de résultats se produit:

entrez la description de l'image ici

Dans cet exemple de matrice de confusion, parmi les 50 points de données classés, 45 sont correctement classés et les 5 sont classés incorrectement.

Etant donné que pour comparer deux modèles différents, il est souvent plus pratique d'avoir une seule métrique plutôt que plusieurs, nous calculons deux métriques à partir de la matrice de confusion, que nous combinerons plus tard en un seul:

  • Vrai taux positif ( TPR ), aka. la sensibilité, le taux de réussite et le rappel , définis comme . Intuitivement, cette mesure correspond à la proportion de points de données positifs qui sont correctement considérés comme positifs par rapport à tous les points de données positifs. En d’autres termes, plus le TPR est élevé, moins nous manquerons de points de données positifs.TPTP+FN
  • Taux de faux positifs ( FPR ), aka. retombée , qui est définie comme . Intuitivement, cette mesure correspond à la proportion de points de données négatifs considérés à tort comme positifs, par rapport à tous les points de données négatifs. En d’autres termes, plus le FPR est élevé, plus les points de données négatifs seront mal classés.FPFP+TN

Pour combiner le FPR et le TPR en une seule métrique, calculons d’abord les deux métriques antérieures avec de nombreux seuils différents (par exemple, ) pour la régression logistique, puis les plaçons sur un seul graphique, avec les valeurs FPR en abscisse et les valeurs TPR en ordonnée. La courbe résultante est appelée courbe ROC et la métrique que nous considérons est l’ASC de cette courbe, que nous appelons AUROC.0.00;0.01,0.02,,1.00

La figure suivante montre graphiquement l'AUROC:

entrez la description de l'image ici

Sur cette figure, la zone bleue correspond à la zone située sous la courbe de la caractéristique de fonctionnement du récepteur (AUROC). La ligne pointillée de la diagonale présente la courbe ROC d’un prédicteur aléatoire: son AUROC est de 0,5. Le prédicteur aléatoire est couramment utilisé comme base pour voir si le modèle est utile.

Si vous voulez avoir une expérience de première main:

Franck Dernoncourt
la source
4
Brillante explication. Je vous remercie. Une question pour préciser que je comprends bien: ai-je raison de dire que, sur ce graphique, un carré bleu uni aurait une courbe ROC (AUC = 1) et constituerait un bon modèle de prédiction? Je suppose que c'est théoriquement possible.
Josh
25
@ josh Oui, c'est vrai. L'AUROC est compris entre 0 et 1 et AUROC = 1 signifie que le modèle de prédiction est parfait. En fait, plus l'AUROC est à partir de 0.5, mieux c'est: si AUROC <0.5, il vous suffit d'inverser la décision prise par votre modèle. Par conséquent, si AUROC = 0, c'est une bonne nouvelle car il vous suffit d'inverser la sortie de votre modèle pour obtenir un modèle parfait.
Franck Dernoncourt le
1
le lien "plusieurs interprétations équivalentes" est cassé.
Haitao Du
1
Dans les interprétations AUROC "Le taux de faux positifs attendu si le classement est divisé juste après un tirage au sort positif uniformément tiré", ne devrait-il pas s'agir de (1 - FPR)?
Mudit Jain
1
@ ryu576 idéalement, le nombre de points de la courbe ROC est bien le nombre d'échantillons testés.
Franck Dernoncourt
60

Bien que je sois un peu en retard à la fête, mais voici mes 5 cents. @FranckDernoncourt (+1) a déjà mentionné les interprétations possibles du ROC AUC, et mon préféré est le premier sur sa liste (j'utilise un libellé différent, mais ce sont les mêmes):

l'ASC d'un classificateur est égale à la probabilité qu'il classera un exemple positif choisi au hasard plus élevé qu'un exemple négatif choisi au hasard, à savoirP(score(x+)>score(x))

Considérons cet exemple (auc = 0.68):

entrez la description de l'image ici

Essayons de le simuler: tirons des exemples positifs et négatifs aléatoires, puis calculons la proportion de cas où les résultats positifs sont supérieurs aux résultats négatifs.

cls = c('P', 'P', 'N', 'P', 'P', 'P', 'N', 'N', 'P', 'N', 'P',
        'N', 'P', 'N', 'N', 'N', 'P', 'N', 'P', 'N')
score = c(0.9, 0.8, 0.7, 0.6, 0.55, 0.51, 0.49, 0.43, 0.42, 0.39, 0.33, 
          0.31, 0.23, 0.22, 0.19, 0.15, 0.12, 0.11, 0.04, 0.01)

pos = score[cls == 'P']
neg = score[cls == 'N']

set.seed(14)
p = replicate(50000, sample(pos, size=1) > sample(neg, size=1))
mean(p)

Et nous obtenons 0.67926. Assez proche, n'est-ce pas?

 

À propos, dans RI, on utilise généralement le package ROCR pour dessiner des courbes ROC et calculer l'AUC.

library('ROCR')

pred = prediction(score, cls)
roc = performance(pred, "tpr", "fpr")

plot(roc, lwd=2, colorize=TRUE)
lines(x=c(0, 1), y=c(0, 1), col="black", lwd=1)

auc = performance(pred, "auc")
auc = unlist(auc@y.values)
auc

entrez la description de l'image ici

Alexey Grigorev
la source
Agréable. Le deuxième bloc gris clarifie définitivement la méthode de traçage.
Josh
+1 (d'avant). Ci-dessus, j'ai lié à un autre fil où vous avez apporté une très belle contribution à un sujet connexe. Ceci fait un excellent travail qui complète le poste de @ FranckDernoncourt et contribue à l'étoffer davantage.
gung
1
Dans la courbe ROC produite par le package R, que signifie la couleur? Pouvez-vous s'il vous plaît ajouter quelques détails à cela. Merci !
Prradep
Il serait probablement utile d’ajouter de vrais positifs et de vrais négatifs à l’explication dans le cadre gris ci-dessus. Sinon, cela peut être un peu déroutant.
cbellei
42

Des considérations importantes ne sont incluses dans aucune de ces discussions. Les procédures décrites ci-dessus invitent à un seuillage inapproprié et utilisent des règles (proportions) de notation de précision incorrectes qui sont optimisées en choisissant les mauvaises caractéristiques et en leur attribuant les mauvaises pondérations.

La dichotomisation des prédictions continues va à l’encontre de la théorie de la décision optimale. Les courbes ROC ne fournissent aucun aperçu exploitable. Ils sont devenus obligatoires sans que les chercheurs en examinent les avantages. Ils ont un très grand ratio encre: information.

Les décisions optimales ne considèrent pas les "positifs" et les "négatifs", mais plutôt la probabilité estimée du résultat. La fonction utilité / coût / perte, qui ne joue aucun rôle dans la construction du ROC, d'où l'inutilité des ROC, est utilisée pour traduire l'estimation du risque en une décision optimale (par exemple, la perte attendue la plus faible).

L’objectif d’un modèle statistique est souvent de faire une prédiction et l’analyste doit souvent s’arrêter là parce qu’il peut ne pas connaître la fonction de perte. Les éléments clés de la prédiction pour valider sans biais (par exemple, en utilisant le bootstrap) sont la discrimination prédictive ( d' une manière semi-bonne pour mesurer c'est la probabilité de concordance qui se trouve égale à la surface sous la ROC , mais peut être plus facile à comprendre si vous don « t tirer le ROC) et la courbe d'étalonnage. La validation de l'étalonnage est vraiment, vraiment nécessaire si vous utilisez des prédictions sur une échelle absolue.

Voir le chapitre Perte d'informations dans Biostatistics for Biomedical Research et d'autres chapitres pour plus d'informations.

Frank Harrell
la source
2
Toute autre réponse se concentre sur des formules mathématiques qui n’ont aucune utilité pratique. Et la seule réponse correcte a le moins de votes positifs.
max
6
Le professeur Harrell m'a fait part de réponses apparemment énigmatiques à ce sujet - elles sont excellentes car elles vous obligent à réfléchir sérieusement. Ce qu’il pense, à mon avis, c’est que vous ne voulez pas accepter les cas de faux négatifs dans un test de dépistage du VIH (exemple fictif), même si accepter un pourcentage plus élevé de faux négatifs (réduire simultanément les faux positifs) pourrait placer votre seuil aux maxima des AUC. Désolé pour la simplification excessive brutale.
Antoni Parellada
Ici
Antoni Parellada
17

AUC est l'abréviation de area under the curve . Il est utilisé dans l'analyse de classification afin de déterminer lequel des modèles utilisés prédit le mieux les classes.

Les courbes ROC sont un exemple d'application. Ici, les vrais taux positifs sont comparés aux faux positifs. Un exemple est ci-dessous. Plus l'AUC d'un modèle est proche de 1, mieux c'est. Les modèles avec des ASC plus élevées sont donc préférés aux modèles avec des ASC plus faibles.

Veuillez noter qu'il existe également d'autres méthodes que les courbes ROC, mais elles sont également liées aux taux de vrais positifs et de faux positifs, par exemple les courbes de rappel de précision, de score F1 ou de Lorenz.

                                            Exemple de courbe ROC

type au hasard
la source
2
Pouvez-vous s'il vous plaît expliquer la courbe ROC dans le contexte d'une validation croisée simple du résultat 0/1? Je ne sais pas très bien comprendre comment la courbe est construite dans ce cas.
Curieux
10

τ

  1. A
  2. BA
  3. τ

P(A>τ)P(B>τ)

τAUC

On a:

AUC=01TPR(x)dx=01P(A>τ(x))dx
xxTPR

(1)AUC=Ex[P(A>τ(x))]
xU[0,1)

xFPR

x=FPR=P(B>τ(x))
x

P(B>τ(x))U
=>P(B<τ(x))(1U)U
(2)=>FB(τ(x))U

XFX(Y)UYX

FX(X)=P(FX(x)<X)=P(X<FX1(X))=FXFX1(X)=X

τ(x)B

En substituant ceci dans l'équation (1), nous obtenons:

AUC=Ex(P(A>B))=P(A>B)

En d'autres termes, l'aire sous la courbe est la probabilité qu'un échantillon positif aléatoire obtienne un score plus élevé qu'un échantillon négatif aléatoire.

ryu576
la source