Articles

Courbe AUC-ROC dans l’Apprentissage Automatique Clairement Expliquée

Courbe AUC-ROC – L’Interprète Vedette!

Vous avez construit votre modèle d’apprentissage automatique – alors quelle est la prochaine étape ? Vous devez l’évaluer et valider à quel point il est bon (ou mauvais), afin que vous puissiez ensuite décider de l’implémenter ou non. C’est là qu’intervient la courbe AUC-ROC.

Le nom peut être une bouchée, mais il dit simplement que nous calculons l' »Aire Sous la courbe » (AUC) de ”L’Opérateur Caractéristique du Récepteur » (ROC). Confus? Je te sens! J’ai été à ta place. Mais ne vous inquiétez pas, nous verrons ce que ces termes signifient en détail et tout sera un jeu d’enfant!

AUC_ROC_meme

Pour l’instant, sachez simplement que la courbe AUC-ROC nous aide à visualiser les performances de notre classificateur d’apprentissage automatique. Bien que cela ne fonctionne que pour les problèmes de classification binaire, nous verrons vers la fin comment nous pouvons l’étendre pour évaluer également les problèmes de classification multi-classes.

Nous aborderons également des sujets tels que la sensibilité et la spécificité, car ce sont des sujets clés derrière la courbe AUC-ROC.

Je suggère de parcourir l’article sur la matrice de confusion car il introduira certains termes importants que nous utiliserons dans cet article.

Table des matières

  • Que sont la sensibilité et la spécificité ?
  • Probabilité de prédictions
  • Quelle est la courbe AUC-ROC ?
  • Comment fonctionne la courbe AUC-ROC ?
  • AUC-ROC en Python
  • AUC-ROC pour la Classification Multi-Classes

Que sont la sensibilité et la spécificité?

Voici à quoi ressemble une matrice de confusion:

Matrice de confusion

À partir de la matrice de confusion, nous pouvons dériver des métriques importantes qui n’ont pas été discutées dans l’article précédent. Parlons-en ici.

Sensibilité / Taux Positif réel / Rappel

Formule de sensibilité

La sensibilité nous indique quelle proportion de la classe positive a été correctement classée.

Un exemple simple serait de déterminer quelle proportion des personnes malades réelles a été correctement détectée par le modèle.

Taux de faux négatifs

Taux de faux négatifs

Le Taux de faux négatifs (FNR) nous indique quelle proportion de la classe positive a été mal classée par le classificateur.

Un TPR supérieur et un FNR inférieur sont souhaitables car nous voulons classer correctement la classe positive.

Spécificité / Taux négatif vrai

Formule de spécificité

La spécificité nous indique quelle proportion de la classe négative a été correctement classée.

En prenant le même exemple qu’en Sensibilité, la spécificité signifierait déterminer la proportion de personnes en bonne santé correctement identifiées par le modèle.

Taux de faux positifs

Taux de faux positifs

FPR nous indique quelle proportion de la classe négative a été mal classée par le classificateur.

Un TNR supérieur et un FPR inférieur sont souhaitables car nous voulons classer correctement la classe négative.

Parmi ces métriques, la sensibilité et la spécificité sont peut-être les plus importantes et nous verrons plus loin comment elles sont utilisées pour construire une métrique d’évaluation. Mais avant cela, comprenons pourquoi la probabilité de prédiction est meilleure que de prédire directement la classe cible.

Probabilité de prédictions

Un modèle de classification d’apprentissage automatique peut être utilisé pour prédire directement la classe réelle du point de données ou prédire sa probabilité d’appartenir à différentes classes. Ce dernier nous donne plus de contrôle sur le résultat. Nous pouvons déterminer notre propre seuil pour interpréter le résultat du classificateur. C’est parfois plus prudent que de simplement construire un tout nouveau modèle!

La définition de seuils différents pour la classification de la classe positive pour les points de données modifiera par inadvertance la sensibilité et la spécificité du modèle. Et l’un de ces seuils donnera probablement un meilleur résultat que les autres, selon que nous visons à réduire le nombre de Faux Négatifs ou de Faux Positifs.

Regardez le tableau ci-dessous:

Exemple de courbe AUC-ROC

Les métriques changent avec les valeurs de seuil changeantes. Nous pouvons générer différentes matrices de confusion et comparer les différentes métriques dont nous avons discuté dans la section précédente. Mais ce ne serait pas une chose prudente à faire. Au lieu de cela, ce que nous pouvons faire est de générer un tracé entre certaines de ces métriques afin que nous puissions facilement visualiser quel seuil nous donne un meilleur résultat.

La courbe AUC-ROC résout juste ce problème!

Quelle est la courbe AUC-ROC ?

La courbe ROC (Receiver Operator Characteristic) est une métrique d’évaluation pour les problèmes de classification binaire. Il s’agit d’une courbe de probabilité qui trace le TPR par rapport au FPR à différentes valeurs de seuil et sépare essentiellement le « signal » du « bruit ». L’Aire sous la courbe (AUC) est la mesure de la capacité d’un classificateur à distinguer les classes et est utilisée comme résumé de la courbe ROC.

Plus l’ASC est élevée, meilleures sont les performances du modèle pour distinguer les classes positives et négatives.

Courbe ROC AUC

Lorsque AUC=1, le classificateur est capable de distinguer parfaitement correctement tous les points de classe positifs et Négatifs. Si, cependant, l’AUC avait été 0, alors le classificateur prédisait tous les Négatifs comme Positifs et tous les Positifs comme Négatifs.

Courbe ROC AUC

Lorsque 0.5 <AUC <1, il y a de fortes chances que le classificateur puisse distinguer les valeurs de classe positives des valeurs de classe négatives. En effet, le classificateur est capable de détecter plus de nombres de Vrais positifs et de Vrais négatifs que de Faux négatifs et de Faux positifs.

Sortie aléatoire AUC ROC

Lorsque l’AUC = 0,5, le classificateur n’est pas en mesure de distinguer les points de classe positifs et Négatifs. Ce qui signifie que le classificateur prédit une classe aléatoire ou une classe constante pour tous les points de données.

Ainsi, plus la valeur AUC d’un classificateur est élevée, meilleure est sa capacité à distinguer les classes positives des classes négatives.

Comment fonctionne la courbe AUC-ROC ?

Dans une courbe ROC, une valeur d’axe des abscisses plus élevée indique un nombre plus élevé de faux positifs que de Vrais négatifs. Alors qu’une valeur d’axe des ordonnées plus élevée indique un nombre plus élevé de Vrais positifs que de Faux négatifs. Ainsi, le choix du seuil dépend de la capacité à équilibrer les faux positifs et les faux négatifs.

Approfondissons un peu et comprenons à quoi ressemblerait notre courbe ROC pour différentes valeurs de seuil et comment la spécificité et la sensibilité varieraient.

Courbe AUC-ROC

Nous pouvons essayer de comprendre ce graphique en générant une matrice de confusion pour chaque point correspondant à un seuil et parler des performances de notre classificateur:

Matrice de confusion d'échantillon

Le point A est l’endroit où la sensibilité est la plus élevée et la spécificité la plus faible. Cela signifie que tous les points de classe positifs sont classés correctement et tous les points de classe négatifs sont classés incorrectement.

En fait, tout point de la ligne bleue correspond à une situation où le Taux de Vrai Positif est égal au Taux de Faux Positif.

Tous les points au-dessus de cette ligne correspondent à la situation où la proportion de points correctement classés appartenant à la classe Positive est supérieure à la proportion de points mal classés appartenant à la classe Négative.

Matrice de confusion d'échantillon

Bien que le Point B ait la même sensibilité que le point A, il a une spécificité plus élevée. Cela signifie que le nombre de points de classe incorrectement négatifs est inférieur au seuil précédent. Cela indique que ce seuil est meilleur que le précédent.

Matrice de confusion AUC ROC

Entre les points C et D, la sensibilité au point C est supérieure au point D pour la même spécificité. Cela signifie que, pour le même nombre de points de classe négative mal classés, le classificateur a prédit un nombre plus élevé de points de classe positifs. Par conséquent, le seuil au point C est meilleur que le point D.

Maintenant, en fonction du nombre de points mal classés que nous voulons tolérer pour notre classificateur, nous choisirions entre le point B ou C pour prédire si vous pouvez me vaincre dans PUBG ou non.

« Les faux espoirs sont plus dangereux que les peurs. » – J.R.R. Tolkein

Matrice de confusion

Le point E est l’endroit où la spécificité devient la plus élevée. Ce qui signifie qu’il n’y a pas de faux Positifs classés par le modèle. Le modèle peut classer correctement tous les points de classe négatifs! Nous choisirions ce point si notre problème était de donner des recommandations de chansons parfaites à nos utilisateurs.

En suivant cette logique, pouvez-vous deviner où se trouverait le point correspondant à un classificateur parfait sur le graphique?

Oui! Il se trouverait dans le coin supérieur gauche du graphe ROC correspondant à la coordonnée (0, 1) dans le plan cartésien. C’est ici que la sensibilité et la Spécificité seraient les plus élevées et que le classificateur classerait correctement tous les points de classe positifs et Négatifs.

Comprendre la courbe AUC-ROC en Python

Maintenant, soit nous pouvons tester manuellement la sensibilité et la spécificité de chaque seuil, soit laisser sklearn faire le travail pour nous. Nous allons certainement avec ce dernier!

Créons nos données arbitraires en utilisant la méthode sklearn make_classification:

Je vais tester les performances de deux classificateurs sur cet ensemble de données:

Sklearn a une méthode très puissante roc_curve() qui calcule le ROC de votre classificateur en quelques secondes! Il renvoie les valeurs FPR, TPR et threshold:

Le score AUC peut être calculé en utilisant la méthode roc_auc_score() de sklearn:

0.9761029411764707 0.9233769727403157

Essayez ce code dans la fenêtre de codage en direct ci-dessous:

Nous pouvons également tracer les courbes ROC pour les deux algorithmes en utilisant matplotlib:

Courbe ROC de classe binaire

Il ressort du graphique que l’ASC de la courbe ROC de régression logistique est supérieure à celle de la courbe ROC KNN. Par conséquent, nous pouvons dire que la régression logistique a mieux réussi à classer la classe positive dans l’ensemble de données.

AUC-ROC pour la Classification Multi-Classes

Comme je l’ai dit précédemment, la courbe AUC-ROC est uniquement pour les problèmes de classification binaire. Mais nous pouvons l’étendre aux problèmes de classification multiclasses en utilisant la technique One vs All.

Donc, si nous avons trois classes 0, 1 et 2, le ROC pour la classe 0 sera généré en classant 0 et non 0, c’est-à-dire 1 et 2. Le ROC pour la classe 1 sera généré en classant 1 contre pas 1, et ainsi de suite.

La courbe ROC pour les modèles de classification multi-classes peut être déterminée comme suit:

ROC multiclasse

Notes de fin

J’espère que vous avez trouvé cet article utile pour comprendre la puissance de la métrique de courbe AUC-ROC dans la mesure des performances d’un classificateur. Vous l’utiliserez beaucoup dans l’industrie et même dans les hackathons de science des données ou d’apprentissage automatique. Mieux vaut s’y familiariser!

Pour aller plus loin, je vous recommande les cours suivants qui vous seront utiles pour développer votre sens aigu de la science des données:

  • Introduction à la Science des données
  • Apprentissage automatique appliqué

Vous pouvez également lire cet article sur notre APPLICATION mobileObtenez-le sur Google Play