Démystifier la matrice de confusion dans l'apprentissage automatique [Étonnant]
Publié: 2020-12-07L'apprentissage automatique est un terme générique sous lequel il accumule le traitement des données, l'extraction d'informations significatives à partir des données et la modélisation des données. Après avoir terminé avec la modélisation des données, le modèle doit être mesuré pour son évaluation des performances et d'autres paramètres basés sur l'industrie et l'une des mesures les plus courantes est la matrice de confusion.
Table des matières
Qu'est-ce que la matrice de confusion et pourquoi est-elle utilisée ?
Il s'agit d'une métrique de performance utilisée dans les problèmes de classification où les classes de sortie peuvent être au moins deux et cette matrice représente toutes les combinaisons de valeurs prédites par un modèle avec des valeurs réelles associées à cette entrée. C'est ce qu'on appelle la « matrice de confusion » parce qu'en suivant les définitions, cela semble facile, mais à mesure que nous avançons pour dériver des paramètres plus précieux, une confusion surgit quant au paramètre le mieux adapté à un endroit particulier.
Il est utilisé dans les endroits où le problème de classification est fortement déséquilibré et où une classe domine les autres classes. Dans de tels scénarios, vous pourriez être surpris de voir la précision du modèle culminer à 99 %, mais en réalité, le modèle est fortement biaisé en faveur de la classe dominante. Il y a très peu de chances que vous obteniez des prédictions pour les classes minoritaires. Par conséquent, pour tester un ensemble de données aussi déséquilibré, nous considérons la matrice de confusion.
Structure de la matrice de confusion
La taille de la matrice est directement proportionnelle au nombre de classes de sortie. Il s'agit d'une matrice carrée où nous supposons que les en-têtes de colonne sont des valeurs réelles et les en-têtes de ligne sont des prédictions de modèle. Les valeurs qui sont vraies et prédites vraies par le modèle sont les vrais positifs (TP) , les prédictions de valeurs négatives correctes sont les vrais négatifs (TN) , les valeurs qui étaient négatives mais prédites comme vraies sont les faux positifs (FP) et les valeurs positives prédites comme négatives sont Faux négatifs (FN) . Regardez cette image :
Lire : Types d'algorithmes de classification dans l'apprentissage automatique
Que pouvons-nous apprendre de cela ?
Une question valable se pose que ce que nous pouvons faire avec cette matrice. Il existe des terminologies importantes basées sur ceci :

- Précision : il s'agit de la partie des valeurs identifiées par le modèle comme correctes et pertinentes pour la solution de l'énoncé du problème. Nous pouvons également citer cela sous forme de valeurs, qui sont une partie du total des résultats positifs donnés par le modèle et qui sont positifs. Par conséquent, nous pouvons donner sa formule sous la forme TP/ (TP + FP).
- Rappel : C'est la partie des valeurs qui sont correctement identifiées comme positives par le modèle. Il est également appelé taux de vrais positifs ou sensibilité. Sa formule est TP/ (TP+FN).
- Score F-1 : C'est la moyenne harmonique de la Précision et du Rappel. Cela signifie que si nous devions comparer deux modèles, cette métrique supprimerait les valeurs extrêmes et considérerait à la fois les faux positifs et les faux négatifs. Il peut être cité comme 2*Précision*Rappel/ (Précision+Rappel).
- Précision : C'est la partie des valeurs qui sont identifiées correctement, qu'elles soient positives ou négatives. Cela signifie que tous les vrais positifs et les vrais négatifs sont inclus. La formule pour cela est (TP+TN)/ (TP+TN+FP+FN).
De tous les termes, précision et rappel sont les plus largement utilisés. Leur compromis est une mesure utile du succès d'une prédiction. Le modèle souhaité est censé avoir une précision élevée et un rappel élevé, mais ce n'est que dans des données parfaitement séparables. Dans les cas d'utilisation pratiques, les données sont très désorganisées et déséquilibrées.

Comment créer du code pour Confusion Matrix en Python ?
La bibliothèque sklearn fournit une variété de fonctionnalités pour effectuer toutes les tâches d'apprentissage automatique avec la plus grande précision et presque tout a été implémenté ici. Considérez le célèbre jeu de données Iris avec toutes les instructions d'importation déjà effectuées, le code de la matrice de confusion serait :
iris = datasets.load_iris()
X = iris.données
y = iris.cible
class_names = iris.target_names
X_train, X_test, y_train, y_test = train_test_split (X, y, random_state = 0 )
classificateur = svm.SVC (kernel = 'linear' , C = 0.01 ) . fit(X_train, y_train)
plot_confusion_matrix(classificateur, X_test, y_test,display_labels = class_names,cmap = plt . cm . Blues)
Remarque : La matrice renvoyée par this a des côtés inversés, ici à gauche nous avons des valeurs réelles et en haut, nous avons des valeurs prédites. Si vous voulez éviter toute confusion, exécutez cette fonction pour obtenir un résumé détaillé (rapport de classement) au lieu de le calculer manuellement :

print(classification_report(y_true=y_test, y_pred=y_pred, target_names=class_names))
Lire aussi : Algorithme d'apprentissage en profondeur
Lequel utiliser et où ?
C'est la question la plus courante qui se pose lors de la modélisation des données et la solution réside dans le domaine d'énoncé du problème. Considérez ces deux cas :
- Supposons que vous prédisiez si la personne fera un arrêt cardiaque. Dans ce scénario, vous ne pouvez vous permettre aucune erreur de classification et toutes les prédictions faites doivent être exactes. Cela dit, le coût des faux négatifs est élevé, de sorte que la personne était sujette à l'attaque mais a été prédite comme sûre. Ces cas doivent être évités. Dans ces situations, nous avons besoin d'un modèle avec un rappel élevé.
- Supposons qu'un moteur de recherche fournisse des résultats aléatoires qui sont tous prédits comme positifs par le modèle, alors il y a très peu de chances que l'utilisateur s'y fie. Par conséquent, dans ce scénario, nous avons besoin d'un modèle de haute précision pour que l'expérience utilisateur s'améliore et que le site Web se développe dans la bonne direction.
Conclusion
La matrice de confusion est une excellente méthode pour évaluer un modèle de classification. Il donne un aperçu réel de la précision avec laquelle le modèle a classé les classes en fonction des entrées fournies et de la façon dont cette classe peut être mal classée.
Si vous souhaitez en savoir plus sur l'apprentissage automatique, consultez le diplôme PG en apprentissage automatique et IA de IIIT-B & upGrad, conçu pour les professionnels en activité et offrant plus de 450 heures de formation rigoureuse, plus de 30 études de cas et missions, IIIT- Statut B Alumni, plus de 5 projets de synthèse pratiques et aide à l'emploi avec les meilleures entreprises.