Tracé matriciel de confusion de Seaborn

Ammar Ali 18 avril 2022
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 :

matrice de confusion

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 :

modification du paramètre du tracé de la matrice de confusion

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.

Auteur: Ammar Ali
Ammar Ali avatar Ammar Ali avatar

Hello! I am Ammar Ali, a programmer here to learn from experience, people, and docs, and create interesting and useful programming content. I mostly create content about Python, Matlab, and Microcontrollers like Arduino and PIC.

LinkedIn Facebook

Article connexe - Seaborn Plot