Accéder au contenu principal

Qu'est-ce qu'une matrice de confusion dans l'apprentissage automatique ? L'outil d'évaluation des modèles expliqué

Voyez comment une matrice de confusion classe les prédictions du modèle en Vrais Positifs, Faux Positifs, Vrais Négatifs et Faux Négatifs. Poursuivez votre lecture pour comprendre sa structure, ses étapes de calcul et son utilisation pour le traitement des données déséquilibrées et l'analyse des erreurs.
Actualisé 16 janv. 2025  · 12 min de lecture

Cette année a été marquée par l'innovation dans le domaine de la science des données, l'intelligence artificielle et l'apprentissage automatique faisant la une des journaux. Si les progrès réalisés en 2023 ne font aucun doute, il est important de reconnaître que nombre de ces avancées en matière d'apprentissage automatique n'ont été possibles que grâce aux processus d'évaluation corrects auxquels les modèles sont soumis. Les spécialistes des données sont chargés de veiller à ce que des évaluations et des processus précis soient mis en place pour mesurer les performances d'un modèle d'apprentissage automatique. Il ne s'agit pas d'un avantage, mais d'une nécessité.

Si vous souhaitez vous initier à la science des données, cet article vous guidera à travers les étapes cruciales de l'évaluation des modèles à l'aide de la matrice de confusion, un outil relativement simple mais puissant, largement utilisé dans l'évaluation des modèles.

Nous allons donc nous plonger dans le vif du sujet et en apprendre davantage sur la matrice de confusion.

Qu'est-ce que la matrice de confusion ?

La matrice de confusion est un outil utilisé pour évaluer la performance d'un modèle et est représentée visuellement sous la forme d'un tableau. Il permet aux praticiens des données de mieux comprendre les performances, les erreurs et les faiblesses du modèle. Cela permet aux praticiens des données d'analyser plus en détail leur modèle en l'affinant.

La structure de la matrice de confusion

Découvrons la structure de base d'une matrice de confusion, en prenant l'exemple de l'identification d'un courriel comme étant du spam ou non.

  • Vrai positif (TP) - Votre modèle a prédit la classe positive. Par exemple, identifier un courriel de spam comme étant du spam.
  • Vrai négatif (TN) - Votre modèle a correctement prédit la classe négative. Par exemple, identifier un courriel normal comme n'étant pas du spam.
  • Faux positif (FP) - Votre modèle a mal prédit la classe positive. Par exemple, l'identification d'un courriel normal comme étant du spam.
  • Faux négatif (FN) - Votre modèle a mal prédit la classe négative. Par exemple, identifier un courriel de spam comme un courriel normal.

Pour bien comprendre le concept de matrice de confusion, jetez un coup d'œil à la visualisation ci-dessous :

La structure d'une matrice de confusion

La structure de base d'une matrice de confusion

Terminologie de la matrice de confusion

Pour bien comprendre la matrice de confusion, il est essentiel de connaître les paramètres importants utilisés pour mesurer la performance d'un modèle.

Définissons les paramètres importants :

Précision

La précision mesure le nombre total de classifications correctes divisé par le nombre total de cas.

Formule de précision pour la matrice de confusion

Rappel/sensibilité

Le rapport rappel/sensibilité mesure le nombre total de vrais positifs divisé par le nombre total de vrais positifs.

Formule de rappel pour la matrice de confusion

Précision

La précision mesure le nombre total de vrais positifs divisé par le nombre total de positifs prédits.

Formule de précision pour la matrice de confusion

Spécificité

La spécificité mesure le nombre total de vrais négatifs divisé par le nombre total de vrais négatifs.

Formule de spécificité pour la matrice de confusion

Score F1

Le score F1 est une mesure unique qui est une moyenne harmonique de la précision et du rappel.

Formule de calcul du score F1 pour la matrice de confusion

Le rôle d'une matrice de confusion

Pour mieux comprendre la matrice de confusion, il faut en comprendre l'objectif et savoir pourquoi elle est largement utilisée.

Lorsqu'il s'agit de mesurer les performances d'un modèle ou quoi que ce soit d'autre en général, les gens se concentrent sur la précision. Cependant, le fait de s'appuyer fortement sur la mesure de la précision peut conduire à des décisions erronées. Pour comprendre cela, nous allons examiner les limites de l'utilisation de la précision en tant que mesure autonome.

Limites de la précision en tant que mesure autonome

Comme défini ci-dessus, la précision mesure le nombre total de classifications correctes divisé par le nombre total de cas. Cependant, l'utilisation de cette mesure en tant que telle comporte des limites :

  • Travailler avec des données déséquilibrées: Aucune donnée n'est jamais parfaite, et l'utilisation de la mesure de la précision doit être évaluée en fonction de son pouvoir prédictif. Par exemple, si vous travaillez avec un ensemble de données où une classe l'emporte sur une autre, le modèle atteindra un taux de précision plus élevé car il prédira la classe majoritaire.
  • Types d'erreurs: Comprendre et connaître les performances de votre modèle dans un contexte spécifique vous aidera à l'affiner et à l'améliorer. Par exemple, la différenciation des types d'erreurs au moyen d'une matrice de confusion, telle que FP et FN, vous permettra d'explorer les limites du modèle.

Malgré ces limites, la matrice de confusion, ainsi que la variété des mesures, offre un aperçu plus détaillé de la manière d'améliorer la performance d'un modèle.

Les avantages d'une matrice de confusion

Comme le montre la structure de base d'une matrice de confusion, les prédictions sont réparties en quatre catégories : Vrai positif, Vrai négatif, Faux positif et Faux négatif.

Cette analyse détaillée offre des informations précieuses et des solutions pour améliorer les performances d'un modèle :

  • Résoudre les données déséquilibrées: Comme nous l'avons vu, l'utilisation de la précision en tant que mesure autonome présente des limites lorsqu'il s'agit de données déséquilibrées. L'utilisation d'autres mesures, telles que la précision et le rappel, permet d'obtenir une vision plus équilibrée et une représentation plus précise. Par exemple, les faux positifs et les faux négatifs peuvent avoir de lourdes conséquences dans des secteurs tels que la finance.
  • Différentiateur de type d'erreur: La compréhension des différents types d'erreurs produites par le modèle d'apprentissage automatique permet de connaître ses limites et les domaines à améliorer.
  • Compromis: Le compromis entre l'utilisation de différentes mesures dans une matrice de confusion est essentiel car elles ont un impact l'une sur l'autre. Par exemple, une augmentation de la précision entraîne généralement une diminution du rappel. Cela vous aidera à améliorer la performance du modèle en utilisant les connaissances des valeurs métriques impactées.

Calcul d'une matrice de confusion

Maintenant que nous avons une bonne compréhension d'une matrice de confusion de base, de sa terminologie et de son utilisation, passons au calcul manuel d'une matrice de confusion, suivi d'un exemple pratique.

Calcul manuel d'une matrice de confusion

Voici un guide étape par étape sur la manière de calculer manuellement une matrice de confusion.

Définir les résultats

La première étape consistera à identifier les deux résultats possibles de votre tâche : Positif ou négatif.

Collecte des prévisions

Une fois les résultats possibles définis, l'étape suivante consiste à collecter toutes les prédictions du modèle, y compris le nombre de fois où le modèle a prédit chaque classe et son occurrence.

Classification des résultats

Une fois que toutes les prédictions ont été rassemblées, l'étape suivante consiste à classer les résultats dans les quatre catégories :

  • Vrai positif (TP)
  • Vrai négatif (TN)
  • Faux positif (FP)
  • Faux négatif (FN)

Créer une matrice

Une fois les résultats classés, l'étape suivante consiste à les présenter dans un tableau matriciel, en vue d'une analyse plus approfondie à l'aide de divers paramètres.

Exemple pratique de matrice de confusion

Prenons un exemple pratique pour illustrer ce processus.

En continuant à utiliser le même exemple d'identification d'un courriel comme étant du spam ou non, créons un ensemble de données hypothétique où le spam est positif et le non spam est négatif. Nous disposons des données suivantes :

  • Parmi les 200 courriels, 80 sont en fait des spams, dont 60 sont correctement identifiés par le modèle (TP).
  • Parmi les 200 courriels, 120 ne sont pas des spams, dont 100 sont correctement identifiés par le modèle comme n'étant pas des spams (TN).
  • Parmi les 200 courriels, le modèle identifie à tort 20 courriels non spammés comme étant des spams (FP).
  • Parmi les 200 courriels, le modèle ne détecte pas 20 courriels de spam et les identifie comme des courriels non spam (FN).

À ce stade, nous avons défini les résultats et collecté les données ; l'étape suivante consiste à classer les résultats dans les quatre catégories :

  • Vrai positif : 60
  • Vrai négatif : 100
  • Faux positif : 20
  • Faux négatif : 20

L'étape suivante consiste à transformer cette matrice en matrice de confusion :

Réel / Prévu

Spam (positif)

Pas de spam (négatif)

Spam (positif)

60 (TP)

20 (FN)

Pas de spam (négatif)

20 (FP)

100 (TN)

Que nous apprend donc la matrice de confusion ?

  • Les Vrais Positifs et les Vrais Négatifs indiquent que les prédictions sont exactes.
  • Les faux positifs indiquent que le modèle a mal prédit la classe positive.
  • Les faux négatifs indiquent que le modèle n'a pas réussi à identifier et à prédire la classe positive.

En utilisant cette matrice de confusion, nous pouvons calculer les différentes mesures : Précision, rappel/sensibilité, exactitude, spécificité et score F1.

Résultats de la matrice de confusion

Résultats de la matrice de confusion

Précision vs. Rappel

Vous vous demandez peut-être pourquoi le score F1 inclut la précision et le rappel dans sa formule. La mesure du score F1 est cruciale lorsque vous traitez des données déséquilibrées ou lorsque vous souhaitez équilibrer le compromis entre la précision et le rappel.

La précision mesure l'exactitude d'une prédiction positive. Il répond à la question suivante : "lorsque le modèle prédit VRAI, combien de fois a-t-il eu raison ? La précision, en particulier, est importante lorsque le coût d'un faux positif est élevé.

Le rappel ou la sensibilité mesure le nombre de positifs réels correctement identifiés par le modèle. Il répond à la question suivante : "Lorsque la classe est VRAIE, combien de fois le classificateur s'est-il trompé ?

Le rappel est important lorsqu'il est démontré que le fait de manquer une instance positive (FN) est nettement plus grave que le fait d'étiqueter incorrectement des instances négatives comme positives.

  • Utilisation de précision: Les faux positifs peuvent avoir de graves conséquences. Par exemple, un modèle de classification utilisé dans le secteur financier a identifié à tort une transaction comme frauduleuse. Dans de tels scénarios, la mesure de la précision est importante.
  • Rappeler l'utilisation: Il peut être impératif d'identifier tous les cas positifs. Par exemple, les modèles de classification utilisés dans le domaine médical qui ne parviennent pas à poser un diagnostic correct peuvent être préjudiciables. Dans les scénarios où il est essentiel d'identifier correctement tous les cas positifs, la mesure de rappel est importante.

Matrice de confusion en utilisant Scikit-learn en Python

Pour mettre cela en perspective, créons une matrice de confusion à l'aide de Scikit-learn en Python, en utilisant un classificateur Random Forest.

La première étape consistera à importer les bibliothèques requises et à construire votre ensemble de données synthétiques.

# Import Libraries
from sklearn.datasets import make_classification
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import confusion_matrix
import matplotlib.pyplot as plt
import seaborn as sns

# Synthetic Dataset
X, y = make_classification(n_samples=1000, n_features=20,
                           n_classes=2, random_state=42)

# Split into Training and Test Sets
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)

L'étape suivante consiste à entraîner le modèle à l'aide d'une simple forêt aléatoire.

# Train the Model
model = RandomForestClassifier(random_state=42)
model.fit(X_train, y_train)

Comme nous l'avons fait dans l'exemple pratique, nous devrons classer les résultats et les transformer en une matrice de confusion. Pour ce faire, nous commençons par prédire sur les données de test, puis nous générons une matrice de confusion :

# Predict on the Test Data
y_pred = model.predict(X_test)

# Generate the confusion matrix
cm = confusion_matrix(y_test, y_pred)

Nous voulons maintenant générer une représentation visuelle de la matrice de confusion :

# Create a Confusion Matrix
plt.figure(figsize=(8, 8))
sns.heatmap(cm, annot=True, fmt='d', cmap='Greens')
plt.title('Confusion Matrix')
plt.ylabel('True label')
plt.xlabel('Predicted label')
plt.show()

Voici le résultat :

Exemple de matrice de confusion

Matrice de confusion de Random Forest Sortie

Tada 🎉 Vous avez réussi à créer votre première matrice de confusion en utilisant Scikit-learn !

Conclusion

Dans cet article, nous avons exploré la définition d'une matrice de confusion, la terminologie importante entourant l'outil d'évaluation, ainsi que les limites et l'importance des différentes métriques. Pouvoir calculer manuellement une matrice de confusion est important pour votre base de connaissances en science des données, de même que pouvoir l'exécuter à l'aide de bibliothèques telles que Scikit-learn.

Si vous souhaitez approfondir votre connaissance des matrices de confusion, vous pouvez vous exercer à l'utilisation des matrices de confusion en R avec Understanding Confusion Matrix in R. Plongez un peu plus profondément avec notre cours Validation de modèle en Python, où vous apprendrez les bases de la validation de modèle, les techniques de validation et commencerez à créer des modèles validés et performants.


Nisha Arya Ahmed's photo
Author
Nisha Arya Ahmed
LinkedIn

Je cherche à mettre en œuvre mes compétences techniques en matière de science des données et mes solides compétences interpersonnelles, afin d'améliorer et d'élargir mes connaissances techniques et mes compétences en matière de rédaction.

Je suis passé de la pharmacologie au monde de la science des données en suivant un bootcamp de 9 mois avec l'école Lambda. 

Je suis intéressé par la mise en œuvre et l'amélioration de mes compétences techniques en matière de codage et de rédaction dans le domaine de l'apprentissage automatique et de l'intelligence artificielle. ​

Actuellement, je suis data scientist et rédacteur technique indépendant.

Sujets

En savoir plus sur la matrice de confusion

cours

Model Validation in Python

4 hr
25K
Learn the basics of model validation, validation techniques, and begin creating validated and high performing models.
Afficher les détailsRight Arrow
Commencer Le Cours
Voir plusRight Arrow
Apparenté

blog

Les 32 meilleures questions d'entretien sur AWS et leurs réponses pour 2024

Un guide complet pour explorer les questions d'entretien AWS de base, intermédiaires et avancées, ainsi que des questions basées sur des situations réelles. Il couvre tous les domaines, garantissant ainsi une stratégie de préparation bien équilibrée.
Zoumana Keita 's photo

Zoumana Keita

30 min

blog

Les 20 meilleures questions d'entretien pour les flocons de neige, à tous les niveaux

Vous êtes actuellement à la recherche d'un emploi qui utilise Snowflake ? Préparez-vous à répondre à ces 20 questions d'entretien sur le flocon de neige pour décrocher le poste !
Nisha Arya Ahmed's photo

Nisha Arya Ahmed

20 min

blog

2022-2023 Rapport annuel DataCamp Classrooms

À l'aube de la nouvelle année scolaire, DataCamp Classrooms est plus motivé que jamais pour démocratiser l'apprentissage des données, avec plus de 7 650 nouveaux Classrooms ajoutés au cours des 12 derniers mois.
Nathaniel Taylor-Leach's photo

Nathaniel Taylor-Leach

8 min

blog

Q2 2023 DataCamp Donates Digest

DataCamp Donates a offert plus de 20k bourses d'études à nos partenaires à but non lucratif au deuxième trimestre 2023. Découvrez comment des apprenants défavorisés et assidus ont transformé ces opportunités en réussites professionnelles qui ont changé leur vie.
Nathaniel Taylor-Leach's photo

Nathaniel Taylor-Leach

blog

Célébration de Saghar Hazinyar : Une boursière de DataCamp Donates et une diplômée de Code to Inspire

Découvrez le parcours inspirant de Saghar Hazinyar, diplômée de Code to Inspire, qui a surmonté les défis en Afghanistan et s'est épanouie grâce à une bourse de DataCamp Donates.
Fereshteh Forough's photo

Fereshteh Forough

4 min

blog

Nous avons fait don de bourses DataCamp Premium à un million de personnes, et ce n'est pas fini.

Réparties entre nos deux programmes d'impact social, DataCamp Classrooms et #DCDonates, les bourses offrent un accès illimité à tout ce que DataCamp Premium a à offrir.
Nathaniel Taylor-Leach's photo

Nathaniel Taylor-Leach

See MoreSee More