Matrice de confusion dans R : comment faire et calculer [avec exemples]
Publié: 2021-03-09R est devenu aujourd'hui l'un des principaux progiciels d'analyse de données et de statistiques. Il s'agit d'un environnement open source préféré pour ses solides capacités informatiques, visuelles et graphiques. Si vous êtes un étudiant en ingénierie, un professionnel de l'analyse commerciale ou quelqu'un qui s'intéresse vivement à la science des données, l'apprentissage du langage de programmation R peut vous aider de nombreuses façons.
Dans cet article, nous aborderons quelques concepts de base du machine learning à travers cette suite intégrée. Plus précisément, nous verrons comment calculer une matrice de confusion dans R .
Mais avant de passer aux détails techniques, comprenons d'abord pourquoi nous avons choisi R à cette fin. C'est en raison des avantages suivants que ce langage de programmation gagne en popularité auprès des statisticiens et des data scientists du monde entier :
- Reproductible : avec R, vous pouvez reproduire des rapports et écrire du code réutilisable
- Partageable : il a une faible courbe d'apprentissage, ce qui ouvre des possibilités de collaboration
- Répétable : tout le monde peut non seulement comprendre ce que vous avez fait, mais également répéter les étapes pour créer les mêmes fonctions sur leurs machines.
L'utilisation du langage R dans le domaine de l'apprentissage automatique a également repris pour les raisons ci-dessus. Vous n'avez pas besoin d'être un programmeur expert pour comprendre sa syntaxe. Et donc, nous vous présentons quelques principes fondamentaux dans la section suivante.
Table des matières
Qu'est-ce qu'une matrice de confusion ?
Une matrice de confusion, ou une matrice d'erreur, traite du problème de classification standard en statistique. Il comprend une disposition de tableau spécifique qui permet aux analystes de données de visualiser les performances d'un algorithme. Ceci s'applique particulièrement aux algorithmes d'apprentissage supervisé.
Pour aller plus loin, une matrice de confusion suit un format N x N, où N fait référence au nombre de classes cibles. Vous pouvez utiliser ce tableau ou cette matrice pour évaluer les performances d'un modèle de classification. Cela est possible car la matrice compare les valeurs prédites aux valeurs cibles.
En un mot, vous pouvez décrire comment votre modèle d'apprentissage automatique, un classificateur, dans ce cas, fonctionne sur un ensemble de données de test (pour lesquelles vous avez déjà les vraies valeurs).
Pour comprendre cette méthode, vous devez vous familiariser avec les termes suivants :
- True Positive (TP) : les valeurs positives sont correctement prédites
- Faux positif (FP) : les valeurs négatives sont incorrectement prédites comme positives
- Faux négatif (FN) : valeurs positives prédites comme négatives
- Vrai négatif (TN) : valeurs négatives prédites comme valeurs négatives réelles
Prenons quelques exemples pour plus de clarté.
Exemples de matrice de confusion
- Vrai positif
Quand vous aviez prédit que l'Inde gagnerait la Coupe du monde de cricket, et elle a gagné.
- Faux positif
Quand vous vous attendiez à ce que l'Inde gagne, mais elle a perdu.
- Faux négatif
Quand vous aviez prédit que la France ne gagnerait pas, mais elle a gagné.
- Vrai négatif
Quand vous avez projeté que l'Inde ne "gagnerait pas" la coupe du monde de cricket et qu'elle a perdu la série dans la vraie vie.
Au fur et à mesure que nous avançons, vous devez vous rappeler que toutes les valeurs prédites sont décrites comme : positives, négatives, vraies et fausses.
Comment calculer la matrice de confusion dans R ?
Considérez un scénario dans lequel vous disposez d'une liste de valeurs attendues ou connues et d'une autre liste de prédictions de votre modèle d'apprentissage automatique. Dans R, vous pouvez calculer la matrice de confusion à l'aide d'une fonction simple de la bibliothèque caret : confusionMatrix(). Il peut non seulement calculer la matrice, mais également renvoyer un rapport détaillé des résultats.
Vous pouvez suivre les étapes ci-dessous pour pratiquer le processus d'exploration de données :
- Testez l'ensemble de données donné avec les résultats attendus.
- Prédisez les lignes de votre ensemble de données de test.
- Déterminez le nombre total de prédictions correctes et incorrectes pour chaque classe.
Une fois que vous avez fait cela, vous trouverez les nombres organisés de la manière suivante :
- Chaque ligne de la matrice correspondra à une classe prédite et chaque colonne sera liée à une classe réelle.
- Le nombre total de classifications correctes et incorrectes est reflété dans le tableau, ainsi que les sommes pour chaque classe.
Supposons que vous ayez 10 personnes réparties en deux classes, hommes et femmes. Vous devez organiser les informations sous forme de matrice de confusion lorsque vous savez que 2 hommes ont été classés comme des femmes, tandis qu'1 femme a été classée comme un homme.
femmes hommes
femmes 3 1
hommes 2 4
Ici, les valeurs correctes sont organisées en ligne diagonale du haut à gauche vers le bas à droite de la matrice (3 + 4). Les résultats nous indiquent qu'il y a plus d'erreurs dans la prédiction des membres masculins en tant que femmes que dans la prédiction des femmes en tant qu'hommes. L'algorithme a fait 7 prédictions correctes sur 10 résultats possibles, ce qui signifie qu'il a une précision de 70 %.
Guide de création et de calcul d'une matrice de confusion dans R
Comme vous pouvez le constater, la fonction de matrice de confusion est un outil utile pour examiner les résultats possibles de vos prédictions. Donc, avant de commencer à créer votre matrice, vous devez d'abord avoir une "coupe" de vos valeurs de probabilité. En d'autres termes, vous devez marquer un seuil pour transformer vos probabilités en prédictions de classe.
Pour ce faire, vous pouvez utiliser la fonction ifelse(). Par exemple:
prédiction_classe <-
ifelse (probability_prediction > 0.50,
"classe_positive",
"classe_négative"
)
Vous pouvez également écrire la fonction table() pour créer un tableau de contingence en base R. Cependant, la fonction confusionMatrix() est connue pour produire des statistiques auxiliaires précieuses.
L'étape suivante consiste à calculer la matrice de confusion et les autres statistiques associées. Ici, vous auriez besoin des résultats prévus et réels. Prenons, par exemple, l'énoncé ci-dessous :
confusionMatrix(prédit, réel)
Maintenant, vous devez procéder à la transformation de vos prédictions numériques en un vecteur de prédictions de classe, sat p_class. Supposons que vous souhaitiez utiliser un seuil de 0,50.
De plus, lorsque vous faites des prédictions, n'oubliez pas de nommer les classes positives et négatives avec des indicateurs distincts. Appelons les classes positives "T" et nommons les négatives "L". Ceci est fait pour faire correspondre les classes avec les données d'origine.
Maintenant que vous avez une p_class et des valeurs réelles dans le jeu de données de test, vous pouvez commencer à créer votre matrice de confusion en appelant la fonction confusionMatrix().
Alternativement, vous pouvez être sûr de l'exactitude de votre modèle d'exploration de données. Dans de tels cas, il est conseillé d'utiliser un seuil de 0,10 et non de 0,90. par la suite, vous pouvez continuer avec les mêmes étapes que dans l'exercice précédent.
Avec vos nouvelles classes prévues, vous pouvez répéter cet appel :
pred <- ifelse(probabilité > seuil, "T", "L")
Enfin, vous pouvez utiliser la fonction confusionMatrix() au caret :
confusionMatrix(prédit, réel)
Avec cela, nous concluons ce tutoriel sur la fonction de matrice de confusion pour l'apprentissage automatique dans R. J'espère que vous l'avez trouvé utile !
Conclusion
Si vous êtes curieux d'en savoir plus sur R, la science des données, consultez notre diplôme PG en science des données qui est créé pour les professionnels en activité et propose plus de 10 études de cas et projets, des ateliers pratiques, un mentorat avec des experts de l'industrie, 1-on- 1 avec des mentors de l'industrie, plus de 400 heures d'apprentissage et d'aide à l'emploi avec les meilleures entreprises.
Les raisons suivantes nous présentent les avantages d'avoir une matrice de confusion et comment elle traite les problèmes de performances. La matrice de confusion dans R peut être calculée en utilisant la fonction "confusionMatrix()" de la bibliothèque caret. Cette fonction calcule non seulement la matrice, mais renvoie également un rapport détaillé de la matrice. Vous devez suivre certaines étapes afin de calculer votre matrice de confusion. Vous pouvez calculer le taux de précision d'un modèle en utilisant une matrice de confusion 2x2. La formule suivante vous donnera le taux de réussite ou le taux de précision :Quel est le besoin de créer une matrice de confusion ?
1. La matrice de confusion est nécessaire pour éradiquer le problème avec une précision de classification. Le rapport de classification pose souvent des problèmes en masquant les détails nécessaires du modèle.
2. La matrice de confusion donne un aperçu des prédictions et du type d'erreurs commises dans le modèle de classification. Les prédictions correctes et erronées sont présentées de manière résumée.
3. Les erreurs et leurs types sont classés pour vous permettre de comprendre les performances de votre modèle. Comment calculer la matrice de confusion dans R ?
1. Testez votre jeu de données.
2. Prédisez son nombre total de lignes.
3. Prédisez le total des prédictions correctes et incorrectes pour chaque classe.
Une fois que vous avez extrait vos données, vous obtiendrez les nombres organisés en lignes. Les lignes seront connectées à la classe prédite tandis que les colonnes seront connectées à la classe réelle. Les valeurs correctes seront dans une ligne diagonale. Ajoutez toutes les valeurs et vous obtiendrez le pourcentage de précision de votre matrice. Comment mesurer la performance dans une matrice de confusion ?
Précision = (TP+TN)/(TP+TN+FP+FN)
Où, TP = vrai positif, TN = vrai négatif, FP = faux positif, FN = faux négatif
Le taux d'erreur de votre modèle peut également être calculé avec la formule de calcul du taux qui est :
Précision = (TP+TN)/(TP+TN+FP+FN) = 1-précision
Le concept du taux d'erreur est très simple. Supposons que votre modèle ait un taux de précision de 80 %, alors le taux d'erreur de votre modèle sera de 20 %.