Classification binaire

Effectué

La classification, comme la régression, est une technique de Machine Learning supervisée. Par conséquent, elle suit le même processus itératif d’entraînement, de validation et d’évaluation des modèles. Au lieu de calculer des valeurs numériques comme un modèle de régression, les algorithmes utilisés pour entraîner les modèles de classification calculent des valeurs de probabilité pour l’affectation de classes, et les métriques d’évaluation utilisées pour évaluer les performances des modèles comparent les classes prédites aux classes réelles.

Les algorithmes de classification binaire sont utilisés pour entraîner un modèle qui prédit l’une des deux étiquettes possibles pour une seule classe. Essentiellement prédire vrai ou faux. Dans la plupart des scénarios qui existent, les observations de données utilisées pour entraîner et valider le modèle se composent de plusieurs valeurs de caractéristiques (x) et d’une valeur y qui est 1 ou 0.

Exemple - classification binaire

Pour comprendre le fonctionnement de la classification binaire, examinons un exemple simplifié qui utilise une seule caractéristique (x) pour prédire si l’étiquette y est 1 ou 0. Dans cet exemple, nous allons utiliser la glycémie d’un patient pour prédire si celui-ci est atteint de diabète. Voici les données avec lesquelles nous allons entraîner le modèle :

Diagram of a syringe. Diagram of a diabetic and non-diabetic person.
Glycémie (x) Diabétique ? (y)
67 0
103 1
114 1
72 0
116 1
65 0

Entraînement d’un modèle de classification binaire

Pour entraîner le modèle, nous allons utiliser un algorithme pour adapter les données d’entraînement à une fonction qui calcule la probabilité que l’étiquette de classe soit vraie (en d’autres termes, que le patient souffre de diabète). La probabilité est mesurée sous la forme d’une valeur comprise entre 0.0 et 1.0, de sorte que la probabilité totale pour toutes les classes possibles est de 1.0. Par exemple, si la probabilité qu’un patient soit diabétique est de 0.7, il existe alors une probabilité correspondante de 0.3 que le patient ne soit pas diabétique.

Il existe de nombreux algorithmes qui peuvent être utilisés pour la classification binaire, comme la régression logistique, qui dérive une fonction sigmoïde (en forme de S) avec des valeurs comprises entre 0.0 et 1.0, comme ceci :

Diagram of a logistic function.

Remarque

Malgré son nom, dans le Machine Learning, la régression logistique est utilisée pour la classification, et non pour la régression. Le point important est la nature logistique de la fonction qu’elle produit, qui décrit une courbe en forme de S entre une valeur inférieure et supérieure (0.0 et 1.0 quand elle est utilisée pour la classification binaire).

La fonction produite par l’algorithme décrit la probabilité que y soit vraie (y=1) pour une valeur donnée de x. Mathématiquement, vous pouvez exprimer la fonction comme suit :

f(x) = P(y=1 | x)

Pour trois des six observations dans les données d’entraînement, nous savons que y est certainement vrai, donc la probabilité pour ces observations que y=1 est 1.0 et pour les trois autres, nous savons que y est certainement faux, donc la probabilité que y=1 est 0.0. La courbe en forme de S décrit la distribution de probabilité afin que le traçage d’une valeur de x sur la ligne identifie la probabilité correspondante que y soit 1.

Le diagramme comprend également une ligne horizontale pour indiquer le seuil auquel un modèle basé sur cette fonction prédit vrai (1) ou faux (0). Le seuil se trouve au milieu de y (P(y) = 0.5). Pour toutes les valeurs à ce stade ou au-dessus, le modèle prédit vrai (1), tandis que pour toutes les valeurs inférieures à ce point, la prédiction est faux (0). Par exemple, pour un patient avec un taux de glycémie de 90, la fonction donnerait une valeur de probabilité de 0.9. Étant donné que 0.9 est supérieur au seuil de 0.5, le modèle prédirait vrai (1) - en d’autres termes, il prédirait que le patient est atteint de diabète.

Évaluation d’un modèle de classification binaire

Comme avec la régression, lors de l’entraînement d’un modèle de classification binaire, vous conservez un sous-ensemble aléatoire de données avec lequel valider le modèle entraîné. Supposons que nous avons retenu les données suivantes pour valider notre classifieur de diabète :

Glycémie (x) Diabétique ? (y)
66 0
107 1
112 1
71 0
87 1
89 1

L’application de la fonction logistique que nous avons dérivée précédemment pour les valeurs x aboutit au tracé suivant.

Diagram of predicted labels on a sigmoid curve.

Selon que la probabilité calculée par la fonction est supérieure ou inférieure au seuil, le modèle génère une étiquette prédite de 1 ou 0 pour chaque observation. Nous pouvons ensuite comparer les étiquettes de classe prédites (ŷ) aux étiquettes de classe réelles (y), comme illustré ici :

Glycémie (x) Diagnostic réel du diabète (y) Diagnostic prédit du diabète (ŷ)
66 0 0
107 1 1
112 1 1
71 0 0
87 1 0
89 1 1

Métriques de l’évaluation de la classification binaire

La première étape du calcul des métriques d’évaluation pour un modèle de classification binaire consiste généralement à créer une matrice du nombre de prédictions correctes et incorrectes pour chaque étiquette de classe possible :

Diagram of a confusion matrix.

Cette visualisation est appelée matrice de confusion et montre les totaux de prédiction où :

  • ŷ=0 et y=0 : Vrais négatifs (VN)
  • ŷ=1 et y=0 : Faux positifs (FP)
  • ŷ=0 et y=1 : Faux négatifs (FN)
  • ŷ=1 et y=1 : Vrais positifs (VP)

La disposition de la matrice de confusion est telle que les prédictions correctes (vraies) sont indiquées sur une ligne diagonale du haut à gauche vers le bas à droite. Souvent, l’intensité des couleurs est utilisée pour indiquer le nombre de prédictions dans chaque cellule. Ainsi, un coup d’œil rapide à un modèle qui donne de bonnes prédictions devrait révéler une tendance diagonale très ombrée.

Exactitude

La métrique la plus simple que vous pouvez calculer à partir de la matrice de confusion est l’exactitude, c’est-à-dire la proportion des prédictions exactes que le modèle a données. L’exactitude est calculée comme suit :

(VN+VP) ÷ (VN+FN+FP+VP)

Dans le cas de notre exemple de diabète, le calcul est :

(2+3) ÷ (2+1+0+3)

= 5 ÷ 6

= 0.83

Ainsi, pour nos données de validation, le modèle de classification du diabète a produit des prédictions correctes 83 % du temps.

À la base, l’exactitude peut sembler être une bonne métrique pour évaluer un modèle, mais tenez compte de ce qui suit. Supposons que 11 % de la population est atteinte de diabète. Vous pourriez créer un modèle qui prédit toujours 0, et il obtiendrait une exactitude de 89 %, même s’il ne tente pas réellement de différencier les patients en évaluant leurs caractéristiques. Ce dont nous avons vraiment besoin, c’est d’une compréhension plus approfondie des performances du modèle pour prédire 1 pour les cas positifs et 0 pour les cas négatifs.

Rappel

Rappel est une métrique qui mesure la proportion de cas positifs identifiés correctement par le modèle. En d’autres termes, sur le nombre de patients qui ont le diabète, combien le modèle en avait-il prédit ?

La formule du rappel est la suivante :

VP ÷ (VP+FN)

Pour notre exemple de diabète :

3 ÷ (3+1)

= 3 ÷ 4

= 0.75

Ainsi, notre modèle a correctement identifié 75 % des patients qui ont le diabète comme ayant du diabète.

Precision

La précision est une métrique semblable au rappel, mais elle mesure la proportion de cas positifs prédits où l’étiquette vraie est réellement positive. En d’autres termes, quelle proportion de patients le modèle a prédits comme ayant du diabète ont effectivement du diabète ?

La formule de la précision est la suivante :

VP ÷ (VP+FP)

Pour notre exemple de diabète :

3 ÷ (3+0)

= 3 ÷ 3

= 1.0

Ainsi, 100 % des patients que notre modèle a prédits comme ayant du diabète ont effectivement du diabète.

F1-score

F1-score est une métrique globale qui combine rappel et précision. La formule pour F1-score est la suivante :

(2 x Précision x Rappel) ÷ (Précision + Rappel)

Pour notre exemple de diabète :

(2 x 1.0 x 0.75) ÷ (1.0 + 0.75)

= 1.5 ÷ 1.75

= 0.86

Zone sous la courbe (AUC)

Le rappel est également appelé taux de vrais positifs (TVP), et il existe une métrique équivalente appelée taux de faux positifs (TFP) qui est calculée en tant que FP÷(FP+VN). Nous savons déjà que le TVP de notre modèle lors de l’utilisation d’un seuil de 0.5 est de 0.75, et nous pouvons utiliser la formule du TFP pour calculer une valeur de 0÷2 = 0.

Bien sûr, si nous changions le seuil au-dessus duquel le modèle prédit vrai (1), cela affecterait le nombre de prédictions positives et négatives, et donc changerait les métriques TVP et TFP. Ces métriques sont souvent utilisées pour évaluer un modèle en traçant une courbe ROC (Received Operator Characteristic) qui compare le TVP et le TFP pour chaque valeur de seuil possible comprise entre 0.0 et 1.0 :

Diagram of a ROC curve.

La courbe ROC d’un modèle parfait monterait directement en haut de l’axe TVP à gauche, puis sur l’axe TFP en haut. Étant donné que la zone de traçage de la courbe mesure 1x1, la zone sous cette courbe parfaite serait 1.0 (ce qui signifie que le modèle est correct 100 % du temps). En revanche, une ligne diagonale du bas à gauche vers le haut à droite représente les résultats qui seraient obtenus en devinant de façon aléatoire une étiquette binaire, ce qui produirait une zone sous la courbe de 0.5. En d’autres termes, avec deux étiquettes de classe possibles, vous pourriez raisonnablement vous attendre à deviner correctement 50 % du temps.

Dans le cas de notre modèle de diabète, la courbe ci-dessus est produite et la métrique de la zone au-dessous de la courbe (AUC) est de 0.875. Étant donné que l’AUC est supérieure à 0.5, nous pouvons conclure que le modèle fonctionne mieux pour prédire si un patient est atteint ou non de diabète que pour deviner de façon aléatoire.