Comment évaluer un modèle de classification ? Les bonnes métriques

Comment évaluer un modèle de classification ?
Classification

Cet article a pour but de présenter les méthodes permettant d’évaluer un modèle de classification en machine learning.

Avant de commencer, voici quelques définitions :

  • True positive (TP) : On prédit vrai et la réponse est vraie
  • True negative (TN) : On prédit faux et la réponse est fausse
  • False positive (FP) : On prédit vrai et la réponse est fausse
  • False negative (FN) : On prédit faux et la réponse est vraie

La matrice de confusion

Elle permet de visualiser pour un problème de classification les résultats de manière synthétique. Elle permet donc de mesurer la qualité d’un problème de classification à l’aide d’une matrice, comme dans le tableau ci-dessous.

True negativeFalse positive
False negativeTrue positive

Voici un exemple de matrice de confusion sur Python et de code associé :

from sklearn import metrics

confusion_matrix = metrics.plot_confusion_matrix(reg, X_test, Y_test, cmap = "GnBu")
print(confusion_matrix)
Matrice de confusion
Un exemple de matrice de confusion

Accuracy

L’accuracy est le quotient entre le nombre de prédictions correctes et le nombre de total de prédictions. Via les notations précédentes, elle est définie par :

Accuracy = \dfrac{TP+TN}{TP+TN+FP+FN}

C’est en fait la métrique la plus naturelle qu’on a envie de regarder : c’est le pourcentage de bonnes réponses ! Mais elle a un gros défaut : Imaginons qu’on souhaite prédire si une personne a le cancer. Et que 99 % des personnes n’ont pas le cancer. Si on fait un algorithme qui prédit tout le temps que la personne n’a pas le cancer. Quelle est son accuracy ? 99 % ! Pour autant peut-on dire que c’est un bon algorithme ? La réponse est évidemment négative ! De manière générale, c’est une mauvaise métrique quand il y a un gros déséquilibre entre chacune des classes de la prédiction.

Recall, precision et F1-score

Recall

Le recall est défini par cette formule :

recall = \dfrac{TP}{TP+FN}

Cette métrique permet de connaitre le pourcentage de positifs bien prédits par le modèle.

Precision

La precision est définie par

precision = \dfrac{TP}{TP+FP}

Elle permet de bien connaitre le pourcentage de prédictions positives bien effectuées. On va donc minimiser le nombre de faux positifs. Quel est l’intérêt ? Admettons qu’on ait un modèle de spams qui supprime les contenus détectés comme tels. On a intérêt à minimiser le nombre de non spams détectés comme spams. Quitte à laisser passer quelques spams à travers les mailles du filet. En effet, les utilisateurs vont préférer avoir quelques spams plutôt que voir leurs contenus légitimes se faire filtrer.

F1-score

Le F1-score est la moyenne harmonique entre la Precision et le Recall. Il est donc défini par la formule suivante :

F1-score = 2 \times \dfrac{recall \times precision}{recall + precision}

Pourquoi ne pas prendre la moyenne entre les 2 métriques ? Tout simplement pour abaisser fortement le score si l’une des 2 métriques est très faible. On préfère avoir un équilibre entre recall et precision.

A noter aussi comme métrique qu’on croise assez régulièrement, la spécificité, définie par

specificity = \dfrac{TN}{TN+FP}

Cette métrique définie le pourcentage de négatifs bien prédits

ROC et AUC

  • ROC curve signifie receiver operating characteristic curve
  • AUC signifie area under curve

On définit un seuil (threshold) à partir du quel on souhaite prédire 1 si ce seuil est dépassé et 0 si on est en-dessous de ce seuil.

La ROC curve est la courbe qui trace le taux de faux positifs en fonction du taux de vrais positifs. Si le seuil de prédiction augmente, on va voir ce taux de vrais positifs qui va augmenter. Dans le même temps, le taux de faux positifs va lui aussi augmenter.

ROC curve
Source

L’AUC est de son côté bien une métrique de classique de classification. Elle représente l’aire sous la courbe ROC. C’est un nombre réel entre 0 et 1. Plus cette aire est élevée, meilleur est le modèle.

Total
0
Partages

Laisser un commentaire

Articles similaires