AUC et ROC

Ce tutoriel présente la courbe AUC et ROC ainsi que la manière d’interpréter les résultats. Le cas multiclasse est aussi présenté.

courbe AUC et ROC

Mesures de performance

En Machine Learning, la mesure des performances est une tâche essentielle. Ainsi lorsqu’il s’agit d’un problème de classification, on peut compter sur une Courbe AUC – ROC. Lorsque nous devons vérifier ou visualiser les performances du problème de classification multi-classe, nous utilisons la courbe AUC (Area Under The Curve) ROC (Receiver Operating Characteristics). Il s’agit de l’une des mesures d’évaluation les plus importantes pour vérifier les performances de tout modèle de classification. Il s’écrit également AUROC (Area Under the Receiver Operating Characteristics).

La courbe AUC – ROC est une mesure de performance pour les problèmes de classification à différents paramètres de seuil. ROC est une courbe de probabilité et AUC représente le degré ou la mesure de séparabilité. Il indique dans quelle mesure le modèle est capable de distinguer les classes. Plus l’AUC est élevée, plus le modèle est capable de prédire 0 classe comme 0 et 1 classe comme 1. Par analogie, plus l’AUC est élevée, plus le modèle est capable de distinguer les patients atteints de la maladie de ceux qui n’en ont pas.

La courbe ROC est tracée avec TPR=TP/(TP+FN) par rapport au FPR=1-Specificity=FP/(TN+FP) où TPR est sur l’axe des y et FPR est sur l’axe des x.

ROC-AUC

Calcul du ROC

La sensibilité et la spécificité (TPR et FPR) sont inversement proportionnelles l’une à l’autre. Ainsi, lorsque l’on augmente la sensibilité, la spécificité diminue, et vice versa.

Lorsque nous entraînons un modèle de classification, nous obtenons la probabilité d’obtenir un résultat. Dans ce cas, notre exemple sera la probabilité de rembourser un prêt.

AUC-ROC

Les probabilités varient entre 0 et 1. Plus la valeur est élevée, plus la personne a de chances de rembourser un prêt.

L’étape suivante consiste à trouver un seuil pour classer les probabilités comme « remboursera » ou « ne remboursera pas ».

Dans l’exemple de la figure, nous avons sélectionné un seuil à 0,35 (les modèles de classification vont sélectionner automatiquement la valeur donnant la meilleure précision)  :

  • Toutes les prédictions égales ou supérieures à ce seuil sont classées comme « rembourseront »
  • Toutes les prédictions en dessous de ce seuil sont classées comme « ne rembourseront pas »

Nous examinons ensuite lesquelles de ces prédictions ont été correctement classées ou mal classées. Avec de telles informations, nous pouvons construire une matrice de confusion.

À ce stade, nous avons

  • classé correctement 90% de tous les positifs, ceux qui ont « remboursé » (TPR)
  • 40 % de tous les négatifs ont été mal classés, ceux qui « n’ont pas remboursé » (FPR)

Nous pouvons remarquer que les résultats pour le TPR et le FPR diminuent à mesure que le seuil augmente. Si l’on regarde le premier, où le seuil est à 0 :

  • Tous les positifs ont été correctement classés, donc TPR = 100 %
  • Tous les négatifs ont été mal classés, donc FPR = 100 %

Dans le dernier exemple de graphique, où le seuil est à 1 :

  • Tous les positifs ont été mal classés, donc TPR = 0 %
  • Tous les négatifs ont été correctement classés, donc FPR = 0 %

AUC-ROC

Pour tracer la courbe ROC, nous devons calculer le TPR et le FPR pour de nombreux seuils différents (cette étape est incluse dans toutes les bibliothèques pertinentes sous le nom de scikit-learn).

Pour chaque seuil, nous traçons la valeur FPR sur l’axe des x et la valeur TPR sur l’axe des y. Nous joignons ensuite les points avec une ligne. C’est ça!

Ci-dessous, dans la figure ci-dessous, nous pouvons voir comment chaque point de la courbe ROC représente le FPR et le TRP d’une classification à un seuil donné.

Remarquez comment le seuil à 1 mène au premier point à (0, 0) et le seuil à 0 mène au dernier point à (1, 1).

AUC-ROC

La zone couverte sous la ligne est appelée « Zone sous la courbe (AUC) ». Ceci est utilisé pour évaluer les performances d’un modèle de classification. Plus l’AUC est élevée, meilleur est le modèle pour distinguer les classes.

Cela signifie que dans un monde idéal, nous aimerions voir notre ligne couvrir la majeure partie du coin supérieur gauche du graphique pour obtenir une AUC plus élevée.

Interprétation mathématique

Comme nous le savons, le ROC est une courbe de probabilité. Traçons donc les distributions de ces probabilités :

Remarque : La courbe de distribution rouge est de la classe positive (patients atteints de maladie) et la courbe de distribution verte est de la classe négative (patients sans maladie).

AUC-ROC

Dans ce cas de figure, une régression trouve une distinction nette entre les deux classes. Dans le cas d’un arbre de décision, un seul split suffit à avoir 100% de réussite ! Ici l’AUC est de 1, ce qui donnerait la courbe suivante :

AUC-ROC

C’est une situation idéale. Lorsque deux courbes ne se chevauchent pas du tout, cela signifie que le modèle a une mesure idéale de séparabilité. Il est parfaitement capable de distinguer la classe positive de la classe négative.

Lorsque deux distributions se chevauchent, nous introduisons des erreurs de type 1 et de type 2. Selon le seuil, nous pouvons les minimiser ou les maximiser. Lorsque l’AUC est de 0,7, cela signifie qu’il y a 70 % de chances que le modèle soit capable de faire la distinction entre une classe positive et une classe négative.

AUC-ROC

C’est la pire situation. Lorsque l’AUC est d’environ 0,5, le modèle n’a aucune capacité de discrimination pour distinguer la classe positive de la classe négative. Cela revient à prédire en aléatoire.

AUC-ROC

Lorsque l’AUC est d’environ 0, le modèle rend en réalité la pareille aux classes. Cela signifie que le modèle prédit une classe négative comme une classe positive et vice versa.

Courbe AUC - ROC pour le problème mutliclasse

Dans un modèle multi-classes, nous pouvons tracer le nombre N de courbes AUC ROC pour N classes de nombres en utilisant la méthodologie One vs ALL. Ainsi, par exemple, si vous avez trois classes nommées X, Y et Z, vous aurez un ROC pour X classé par rapport à Y et Z, un autre ROC pour Y classé par rapport à X et Z, et le troisième de Z classé par rapport à Y et X.