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