Seaborn Confusion Matrix Plot

Ammar Ali 15 Februar 2024
Seaborn Confusion Matrix Plot

In diesem Tutorial wird das Zeichnen der Konfusionsmatrix mit Seaborns Funktion heatmap() in Python erläutert.

Plotten der Verwirrungsmatrix mit Seaborn

Bei einem Klassifizierungsproblem wird die Zusammenfassung der Vorhersageergebnisse in einer Konfusionsmatrix gespeichert. Wir müssen die Konfusionsmatrix zeichnen, um die Anzahl der richtigen und falschen Vorhersagen zu sehen.

Um eine Verwirrungsmatrix zu zeichnen, müssen wir einen Datenrahmen der Verwirrungsmatrix erstellen, und dann können wir die Funktion heatmap() von Seaborn verwenden, um die Verwirrungsmatrix in Python zu zeichnen. Lassen Sie uns zum Beispiel eine zufällige Konfusionsmatrix erstellen und sie mit der Funktion heatmap() plotten. Siehe Code unten.

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()

Ausgabe:

Verwirrungsmatrix-Plot

Um den Datenrahmen der Konfusionsmatrix zu erstellen, haben wir die Funktion DataFrame() der Bibliothek pandas verwendet. Um den Datenrahmen zu erstellen, müssen wir das Array, die Anzahl der Zeilen und die Anzahl der Spalten übergeben.

Das zweite Argument innerhalb der Funktion heatmap() wird verwendet, um die Konfusionsmatrixwerte auf dem Diagramm anzuzeigen. Wenn wir das zweite Argument annot nicht verwenden, sind die Matrixwerte nicht sichtbar, und wir sehen nur die Farben.

Wir können die Farbkarte des Diagramms in jede Farbkarte ändern, die von Funktionen wie Winter, Sommer, Kühl, Kupfer und Heiß unterstützt wird. Wir können auch den auf der rechten Seite des Plots angezeigten Farbbalken mit dem Argument cbar ausschalten und auf false setzen.

Wir können auch die Breite und Farbe der Linie um jede Zelle mit den Parametern linewidths und linecolor festlegen. Wir können jeden Fließkommawert verwenden, um den Wert der Linienbreite festzulegen. Wir können den Farbnamen oder den Anfangsbuchstaben der Farbe verwenden, um den Wert der Linienfarbe festzulegen.

Wir können jede Zellform quadratisch setzen, indem wir das Argument square verwenden und es auf wahr setzen. Wir können auch die Teilstriche jeder Achse mit den xticklabels für x-Achsen-Teilstriche und yticklabels für y-Achsen-Teilstriche setzen.

Wir können das Tick-Label-Argument auf eine Liste mit der gleichen Größe wie die x-Achsen-Zellen setzen. Ändern wir beispielsweise die oben genannten Argumente. Siehe Code unten.

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()

Ausgabe:

sich ändernder Parameter des Verwirrungsmatrixplots

Wir können auch die Schriftgröße der Tick-Beschriftungen beider Achsen mit der Funktion set() von Seaborn einstellen. Wir können den Schriftwert auf eine beliebige Fließkommazahl setzen, indem wir den Parameter font_scale innerhalb der Funktion set() verwenden. Um beispielsweise die Schriftgröße des obigen Diagramms festzulegen, können wir den folgenden Code verwenden.

snNew.set(font_scale=1.9)

Wenn wir die Schriftgröße verkleinern wollen, müssen wir einen Wert kleiner als eins verwenden.

Autor: 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

Verwandter Artikel - Seaborn Plot