Tracé matriciel de confusion de Seaborn
Ce tutoriel discutera du traçage de la matrice de confusion à l’aide de la fonction heatmap()
de Seaborn en Python.
Tracé de la matrice de confusion à l’aide de Seaborn
Dans un problème de classification, le résumé des résultats de prédiction est stocké dans une matrice de confusion. Nous devons tracer la matrice de confusion pour examiner le nombre de prédictions correctes et incorrectes.
Pour tracer une matrice de confusion, nous devons créer une trame de données de la matrice de confusion, puis nous pouvons utiliser la fonction heatmap()
de Seaborn pour tracer la matrice de confusion en Python. Par exemple, créons une matrice de confusion aléatoire et traçons-la à l’aide de la fonction heatmap()
. Voir le code ci-dessous.
import seaborn as snNew
import pandas as pdNew
import matplotlib.pyplot as pltNew
array = [
[11, 1, 0, 2, 0],
[3, 8, 0, 1, 0],
[0, 16, 3, 0, 0],
[0, 0, 12, 0, 0],
[0, 0, 0, 13, 0],
[0, 1, 0, 0, 16],
]
DetaFrame_cm = pdNew.DataFrame(array, range(6), range(5))
snNew.heatmap(DetaFrame_cm, annot=True)
pltNew.show()
Production :
Pour créer le data frame de la matrice de confusion, nous avons utilisé la fonction DataFrame()
de la librairie pandas
. Pour créer le bloc de données, nous devons transmettre le tableau, le nombre de lignes et le nombre de colonnes.
Le deuxième argument à l’intérieur de la fonction heatmap()
est utilisé pour afficher les valeurs de la matrice de confusion sur le tracé. Si nous n’utilisons pas le second argument, annot
, les valeurs de la matrice ne seront pas visibles, et nous ne verrons que les couleurs.
Nous pouvons changer la carte de couleurs de l’intrigue en n’importe quelle carte de couleurs prise en charge par des fonctions telles que l’hiver, l’été, le froid, le cuivre et le chaud. Nous pouvons également désactiver la barre de couleur affichée sur le côté droit du tracé en utilisant l’argument cbar
et en le définissant sur false.
Nous pouvons également spécifier la largeur et la couleur de la ligne autour de chaque cellule à l’aide des paramètres linewidths
et linecolor
. Nous pouvons utiliser n’importe quelle valeur à virgule flottante pour définir la valeur de la largeur de ligne. Nous pouvons utiliser le nom de la couleur ou la première lettre de la couleur pour définir la valeur de la couleur de la ligne.
Nous pouvons définir chaque forme de cellule sur carré en utilisant l’argument square
et en le définissant sur vrai. Nous pouvons également définir les étiquettes de graduation de chaque axe en utilisant les xticklabels
pour les étiquettes de graduation de l’axe des x et yticklabels
pour les étiquettes de graduation de l’axe des y.
Nous pouvons définir l’argument de l’étiquette de la coche sur une liste de la même taille que les cellules de l’axe des x. Par exemple, changeons les arguments mentionnés ci-dessus. Voir le code ci-dessous.
import seaborn as snNew
import pandas as pdNew
import matplotlib.pyplot as pltNew
array = [
[11, 1, 0, 2, 0],
[3, 8, 0, 1, 0],
[0, 16, 3, 0, 0],
[0, 0, 12, 0, 0],
[0, 0, 0, 13, 0],
[0, 1, 0, 0, 16],
]
DetaFrame_cm = pdNew.DataFrame(array, range(6), range(5))
snNew.heatmap(
DetaFrame_cm,
annot=True,
cmap="summer",
cbar=False,
linewidths=3,
linecolor="r",
square=True,
xticklabels=["a", "b", "c", "d", "e"],
)
pltNew.show()
Production :
Nous pouvons également définir la taille de la police des étiquettes de graduation des deux axes à l’aide de la fonction set()
de Seaborn. Nous pouvons définir la valeur de la police sur n’importe quel nombre à virgule flottante en utilisant le paramètre font_scale
dans la fonction set()
. Par exemple, pour définir la taille de la police du graphique ci-dessus, nous pouvons utiliser le code ci-dessous.
snNew.set(font_scale=1.9)
Si nous voulons diminuer la taille de la police, nous devons utiliser une valeur inférieure à un.