logo

Matrice de confusion dans l'apprentissage automatique

Dans apprentissage automatique , la classification est le processus de catégorisation d'un ensemble donné de données en différentes catégories. En apprentissage automatique, pour mesurer les performances du modèle de classification, nous utilisons le matrice de confusion . A travers ce tutoriel, comprenez l'importance de la matrice de confusion.

Qu'est-ce qu'une matrice de confusion ?

UN matrice de confusion est une matrice qui résume les performances d'un modèle d'apprentissage automatique sur un ensemble de données de test. C'est un moyen d'afficher le nombre d'instances exactes et inexactes en fonction des prédictions du modèle. Il est souvent utilisé pour mesurer les performances des modèles de classification, qui visent à prédire une étiquette catégorielle pour chaque instance d'entrée.



La matrice affiche le nombre d'instances produites par le modèle sur les données de test.

  • Vrais positifs (TP) : se produisent lorsque le modèle prédit avec précision un point de données positif.
  • Vrais négatifs (TN) : se produit lorsque le modèle prédit avec précision un point de données négatif.
  • Faux positifs (FP) : se produit lorsque le modèle prédit de manière incorrecte un point de données positif.
  • FAUX négatifs (FN) : se produit lorsque le modèle prédit mal un point de données négatif.

Pourquoi avons-nous besoin d’une matrice de confusion ?

Lors de l’évaluation des performances d’un modèle de classification, une matrice de confusion est essentielle. Il propose une analyse approfondie des prédictions vraies positives, vraies négatives, faussement positives et faussement négatives, facilitant une compréhension plus approfondie du modèle. rappel, exactitude, précision, et l'efficacité globale en distinction de classe. Lorsqu’il existe une répartition inégale des classes dans un ensemble de données, cette matrice est particulièrement utile pour évaluer les performances d’un modèle au-delà des mesures de précision de base.

Comprenons la matrice de confusion avec les exemples :



Matrice de confusion pour la classification binaire

Une matrice de confusion 2X2 est présentée ci-dessous pour la reconnaissance d'image ayant une image de chien ou une image de non-chien.

Réel



Chien

Pas un chien

applications cachées

Prédit

Chien

Vrai positif
(TP)

Faux positif
(PF)

Pas un chien

Faux négatif
(FN)

Vrai négatif
(TN)

  • Vrai positif (TP) : Ce sont les décomptes totaux ayant à la fois des valeurs prédites et réelles qui constituent Dog.
  • Vrai négatif (TN) : Ce sont les décomptes totaux ayant à la fois des valeurs prédites et réelles qui ne sont pas des chiens.
  • Faux positif (FP) : Il s'agit du nombre total de prédictions indiquant qu'il s'agit d'un chien alors qu'en réalité ce n'est pas un chien.
  • Faux négatif (FN) : C'est le nombre total dont la prédiction n'est pas un chien alors qu'en réalité, c'est un chien.

Exemple de problèmes de classification binaire

Indice

1

2

3

4

5

6

7

8

9

dix

Réel

Chien

Chien

Chien

Pas un chien

Chien

Pas un chien

Chien

Chien

Pas un chien

Pas un chien

Prédit

Chien

Pas un chien

Chien

Pas un chien

Chien

Chien

Chien

Chien

Pas un chien

Pas un chien

Résultat

Ville

FR

Ville

TN

Ville

FP

Ville

Ville

TN

tutoriel sur les microservices

TN

  • Nombre réel de chiens = 6
  • Nombre réel de chiens non = 4
  • Nombres vrais positifs = 5
  • Nombre de faux positifs = 1
  • Nombres vrais négatifs = 3
  • Nombre de faux négatifs = 1

js chaîne multiligne

Prédit

Chien

Pas un chien


Réel

Chien

Vrai positif
(TP =5)

Faux négatif
(FN =1)

Pas un chien

Faux positif
(FP=1)

Vrai négatif
(TN=3)

Métriques basées sur les données de la matrice de confusion

1. Précision

La précision est utilisée pour mesurer les performances du modèle. Il s'agit du rapport entre le nombre total d'instances correctes et le nombre total d'instances.

Accuracy = frac {TP+TN}{TP+TN+FP+FN}

Pour le cas ci-dessus :

Précision = (5+3)/(5+3+1+1) = 8/10 = 0,8

2. Précision

Précision est une mesure de la précision des prédictions positives d’un modèle. Il est défini comme le rapport entre les véritables prédictions positives et le nombre total de prédictions positives faites par le modèle.

ext{Precision} = frac{TP}{TP+FP}

Pour le cas ci-dessus :

Précision = 5/(5+1) =5/6 = 0,8333

3. Rappel

Rappel mesure l'efficacité d'un modèle de classification pour identifier toutes les instances pertinentes à partir d'un ensemble de données. C'est le rapport entre le nombre d'instances vraies positives (TP) et la somme des instances vraies positives et faussement négatives (FN).

ext{Recall} = frac{TP}{TP+FN}

Pour le cas ci-dessus :

Rappel = 5/(5+1) =5/6 = 0,8333

Note: Nous utilisons la précision lorsque nous voulons minimiser les faux positifs, ce qui est crucial dans des scénarios tels que la détection des courriers indésirables, où la classification erronée d'un message non spam comme spam est coûteuse. Et nous utilisons le rappel lorsqu’il est essentiel de minimiser les faux négatifs, comme dans les diagnostics médicaux, où l’identification de tous les cas positifs réels est essentielle, même si cela aboutit à certains faux positifs.

4. Score F1

Score F1 est utilisé pour évaluer les performances globales d’un modèle de classification. C'est le moyen harmonique de précision et de rappel,

ext{F1-Score} = frac {2 cdot Precision cdot Recall}{Precision + Recall}

Pour le cas ci-dessus :

Score F1 : = (2* 0,8333* 0,8333)/( 0,8333+ 0,8333) = 0,8333

Nous équilibrons la précision et le rappel avec le score F1 lorsqu'un compromis entre la minimisation des faux positifs et des faux négatifs est nécessaire, comme dans les systèmes de recherche d'informations.

5. Spécificité :

La spécificité est une autre mesure importante dans l'évaluation des modèles de classification, en particulier dans la classification binaire. Il mesure la capacité d'un modèle à identifier correctement les instances négatives. La spécificité est également connue sous le nom de taux de vrais négatifs.

ext{Specificity} = frac{TN}{TN+FP}

Spécificité=3/(1+3)​=3/4=0.75

6. Erreur de type 1 et de type 2

Erreur de type 1

L’erreur de type 1 se produit lorsque le modèle prédit une instance positive, alors qu’elle est en réalité négative. La précision est affectée par les faux positifs, car il s’agit du rapport entre les vrais positifs et la somme des vrais positifs et des faux positifs.

ext{Type 1 Error} = frac{FP}{TN+FP}

Par exemple, dans une salle d’audience, une erreur de type 1, souvent appelée faux positif, se produit lorsque le tribunal déclare par erreur une personne coupable alors qu’en réalité, elle est innocente du crime allégué. Cette grave erreur peut avoir de profondes conséquences, conduisant à la punition injustifiée d’une personne innocente qui n’a pas commis l’infraction en question. Il est primordial de prévenir les erreurs de type 1 dans les procédures judiciaires pour garantir que la justice soit rendue avec précision et que les individus innocents soient protégés contre tout préjudice et toute punition injustifiés.

Erreur de type 2

Une erreur de type 2 se produit lorsque le modèle ne parvient pas à prédire une instance positive. Le rappel est directement affecté par les faux négatifs, car il s’agit du rapport des vrais positifs à la somme des vrais positifs et des faux négatifs.

Dans le contexte des tests médicaux, une erreur de type 2, souvent appelée faux négatif, se produit lorsqu'un test de diagnostic ne parvient pas à détecter la présence d'une maladie chez un patient qui en est réellement atteint. Les conséquences d’une telle erreur sont importantes, car elle peut retarder le diagnostic et le traitement ultérieur.

ext{Type 2 Error} = frac{FN}{TP+FN}

La précision met l’accent sur la minimisation des faux positifs, tandis que le rappel se concentre sur la minimisation des faux négatifs.

Implémentation de la matrice de confusion pour la classification binaire à l'aide de Python

Étape 1 : Importez les bibliothèques nécessaires

Python import numpy as np from sklearn.metrics import confusion_matrix,classification_report import seaborn as sns import matplotlib.pyplot as plt>

Étape 2 : Créez le tableau NumPy pour les étiquettes réelles et prévues

Python actual = np.array( ['Dog','Dog','Dog','Not Dog','Dog','Not Dog','Dog','Dog','Not Dog','Not Dog']) predicted = np.array( ['Dog','Not Dog','Dog','Not Dog','Dog','Dog','Dog','Dog','Not Dog','Not Dog'])>

Étape 3 : Calculer la matrice de confusion

Python cm = confusion_matrix(actual,predicted)>

Étape 4 : Tracez la matrice de confusion à l'aide de la carte thermique Seaborn

Python cm = confusion_matrix(actual,predicted) sns.heatmap(cm, annot=True, fmt='g', xticklabels=['Dog','Not Dog'], yticklabels=['Dog','Not Dog']) plt.xlabel('Prediction',fontsize=13) plt.ylabel('Actual',fontsize=13) plt.title('Confusion Matrix',fontsize=17) plt.show()>

Sortir :

Étape 5 : Rapport de classifications basé sur les mesures de confusion

Python print(classification_report(actual, predicted))>

Sortir :

rappel de précision prise en charge du score f1 Chien 0,83 0,83 0,83 6 Pas chien 0,75 0,75 0,75 4 précision 0,80 10 moyenne macro 0,79 0,79 0,79 10 moyenne pondérée 0,80 0,80 0,80 10

Matrice de confusion pour la classification multi-classes

Considérons maintenant qu’il existe trois classes. Une matrice de confusion 3X3 est présentée ci-dessous pour l'image comportant trois classes.

Ici, TP= True Positive , FP= False Positive , FN= False Negative.

IndiceRéelPréditVilleFPFR
1ChatChat100
2ChienChien100
3ChevalChien011
4ChatChat100
5ChienChien100
6ChatChat100
7ChienChien100
8ChevalCheval100
9ChevalCheval100
dixChatChien011
  • Vrais positifs (TP) : 8 (1+1+0+1+1+1+1+1+1+0)
  • Faux positifs (FP) : 2 (0+0+1+0+0+0+0+0+0+1)
  • Faux négatifs (FN) : 2 (0+0+1+0+0+0+0+0+0+1)

Une matrice de confusion 3X3 est présentée ci-dessous pour trois classes.

Prédit

Chat

Chien

Cheval


Réel

Chat

ordinateur inventé en quelle année

Ville

FP

FR

Chien

FP

Ville

FR

Cheval

FR

FP

Ville

Résumé par classe :

  • Pour chat : [TP=3,FP=0,FN=1]
    • Index 1 : Vrai positif (Chat réel, Chat prédit)
    • Index 4 : Vrai positif (Chat réel, Chat prédit)
    • Index 6 : Vrai positif (Chat réel, Chat prédit)
    • Index 10 : Faux négatif (Chat réel, Chien prédit)
  • Pour chien : [TP=3,FP=2,FN=0]
    • Index 2 : Vrai positif (Chien réel, Chien prédit)
    • Index 5 : Vrai positif (Chien réel, Chien prédit)
    • Index 7 : Vrai positif (Chien réel, Chien prédit)
    • Index 10 : Faux positif (Chat réel, Chien prédit)
    • Index 3 : Faux positif (Cheval réel, Chien prédit)
  • Pour Cheval : [TP=2,FP=0,FN=1]
    • Index 8 : Vrai positif (Cheval réel, Cheval prédit)
    • Index 9 : Vrai positif (Cheval réel, Cheval prédit)
    • Index 3 : Faux Négatif (Cheval réel, Chien prédit)

La matrice de confusion sera alors :

Prédit

Chat

Chien

Cheval


Réel

Chat

chaîne java de concaténation

TP(3)

FP(1)

FR(0)

Chien

FR(0)

TP(3)

FR(1)

Cheval

FR(1)

FP(1)

TP(2)

Implémentation de la matrice de confusion pour la classification binaire à l'aide de Python

Étape 1 : Importez les bibliothèques nécessaires

Python import numpy as np from sklearn.metrics import confusion_matrix, classification_report import seaborn as sns import matplotlib.pyplot as plt>

Étape 2 : Créez le tableau NumPy pour les étiquettes réelles et prévues

Python actual = np.array( ['Cat', 'Dog', 'Horse', 'Cat', 'Dog', 'Cat', 'Dog', 'Horse', 'Horse', 'Cat']) predicted = np.array( ['Cat', 'Dog', 'Dog', 'Cat', 'Dog', 'Cat', 'Dog', 'Horse', 'Horse', 'Dog'])>

Étape 3 : Calculer la matrice de confusion

Python cm = confusion_matrix(actual,predicted)>

Étape 4 : Tracez la matrice de confusion à l'aide de la carte thermique Seaborn

Python cm = confusion_matrix(actual,predicted) sns.heatmap(cm, annot=True, fmt='g', xticklabels=['Cat', 'Dog', 'Horse'], yticklabels=['Cat', 'Dog', 'Horse']) plt.xlabel('Prediction', fontsize=13) plt.ylabel('Actual', fontsize=13) plt.title('Confusion Matrix', fontsize=17) plt.show()>

Sortir:

Étape 5 : Rapport de classifications basé sur les mesures de confusion

Python print(classification_report(actual, predicted))>

Sortir :

rappel de précision prise en charge du score f1 Chat 1,00 0,75 0,86 4 Chien 0,60 1,00 0,75 3 Cheval 1,00 0,67 0,80 3 précision 0,80 10 moyenne macro 0,87 0,81 0,80 10 moyenne pondérée 0,88 0,80 0,81 10

Conclusion

En résumé, la matrice de confusion est un instrument essentiel pour évaluer l'efficacité des modèles de classification. Des informations sur l’exactitude, la précision, le rappel et l’efficacité générale d’un modèle dans la classification des instances sont fournies par l’analyse approfondie des prédictions vraies positives, vraies négatives, faussement positives et faussement négatives qu’il propose. L’article fournissait des exemples pour illustrer le calcul de chaque métrique et discutait de son importance. Il a également démontré comment des matrices de confusion peuvent être implémentées en Python pour des scénarios de classification binaire et multi-classes. Les praticiens peuvent prendre des décisions éclairées concernant les performances du modèle, en particulier lorsqu'il s'agit de distributions de classes déséquilibrées, en comprenant et en appliquant ces mesures.

FAQ sur la matrice de confusion

Q. Comment interpréter une matrice de confusion ?

Une matrice de confusion résume les performances d'un modèle de classification, avec des entrées représentant des instances de vrais positifs, de vrais négatifs, de faux positifs et de faux négatifs, fournissant ainsi des informations sur la précision et les erreurs du modèle.

Q. Quels sont les avantages de l’utilisation de la matrice de confusion ?

La matrice de confusion fournit une évaluation complète des performances d’un modèle de classification, offrant des informations sur les vrais positifs, les vrais négatifs, les faux positifs et les faux négatifs, facilitant ainsi une analyse nuancée au-delà de la précision de base.

Q. Quels sont quelques exemples d’applications de matrices de confusion ?

Les matrices de confusion trouvent des applications dans divers domaines, notamment le diagnostic médical (identification des vrais/faux positifs/négatifs pour les maladies), la détection de la fraude, l'analyse des sentiments et l'évaluation de la précision de la reconnaissance d'images.

Q. Qu'est-ce que le diagramme de la matrice de confusion ?

Un diagramme matriciel de confusion représente visuellement les performances d'un modèle de classification. Il affiche les valeurs vraies positives, vraies négatives, faussement positives et faussement négatives dans un format matriciel structuré.

Q. Quelles sont les trois valeurs de la matrice de confusion ?

Les trois valeurs de la matrice de confusion sont les vrais positifs (instances positives correctement prédites), les vrais négatifs (instances négatives correctement prédites) et les faux positifs (instances positives mal prédites).