So erstellen Sie eine Konfusionsmatrix in Python

Von Fabian
Kategorie: Python
Tags: Regression
Lesezeit: 3 Minuten

Die logistische Regression ist eine Art von Regression, die wir verwenden können, wenn die Antwortvariable binär ist.

Eine gängige Methode zur Bewertung der Qualität eines logistischen Regressionsmodells besteht darin, eine Konfusionsmatrix zu erstellen, bei der es sich um eine 2 × 2-Tabelle handelt, die die vorhergesagten Werte aus dem Modell im Vergleich zu den tatsächlichen Werten aus dem Testdatensatz anzeigt.

Verwirrer

Um eine Konfusionsmatrix für ein logistisches Regressionsmodell in Python zu erstellen, können wir die Funktion verwirrung_matrix () aus dem Paket sklearn verwenden:

from sklearn import metrics
metrics.confusion_matrix(y_actual, y_predicted)

Das folgende Beispiel zeigt, wie Sie diese Funktion verwenden, um eine Konfusionsmatrix für ein logistisches Regressionsmodell in Python zu erstellen.

Beispiel: Erstellen einer Konfusionsmatrix in Python

Angenommen, wir haben die folgenden zwei Arrays, die die tatsächlichen Werte für eine Antwortvariable zusammen mit den von einem logistischen Regressionsmodell vorhergesagten Werten enthalten:

#Array von tatsächlichen Werten definieren
y_actual = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]

#Array vorhergesagter Werte definieren
y_predicted = [0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1]

Wir können die Confusion_matrix()-Funktion von sklearn verwenden, um eine Konfusionsmatrix für diese Daten zu erstellen:

from sklearn import metrics

#Konfusionsmatrix erstellen
c_matrix = metrics.confusion_matrix(y_actual, y_predicted)

#Konfusionsmatrix ausgeben
print(c_matrix)

[[6 4]
 [2 8]]

Wenn wir möchten, können wir die Funktion crosstab() von Pandas verwenden, um eine optisch ansprechendere Konfusionsmatrix zu erstellen:

import pandas as pd

y_actual = pd.Series(y_actual, name='Actual')
y_predicted = pd.Series(y_predicted, name='Predicted')

#Konfusionsmatrix erstellen
print(pd.crosstab(y_actual, y_predicted))

Predicted  0  1
Actual         
0          6  4
1          2  8

Die Spalten zeigen die vorhergesagten Werte für die Antwortvariable und die Zeilen zeigen die tatsächlichen Werte.

Wir können auch die Genauigkeit, Präzision und den Rückruf mithilfe von Funktionen aus dem sklearn-Paket berechnen:

#Genauigkeit des Modells ausgeben
print(metrics.accuracy_score(y_actual, y_predicted))

0.7

#Präzisionswert des Modells ausgeben
print (metrics. precision_score (y_actual, y_predicted))

0,667

#Erinnerungswert des Modells ausgeben
print (Metriken. Recall_score (y_actual, y_predicted))

0,8

Hier ist eine kurze Auffrischung zu Accuracy, Precision und Recall:

  • Accuracy: Prozentsatz der richtigen Vorhersagen
  • Precision: Korrigieren Sie positive Vorhersagen im Verhältnis zu den gesamten positiven Vorhersagen
  • Recall: Korrigieren Sie positive Vorhersagen im Verhältnis zu den tatsächlich positiven Gesamtwerten

Und so wurde jede dieser Metriken in unserem Beispiel tatsächlich berechnet:

  • Accuracy: (6+8) / (6+4+2+8) = 0,7
  • Precision: 8 / (8+4) = 0,667
  • Recall: 8 / (2+8) = 0,8

Zusätzliche Ressourcen

Einführung in die logistische Regression

Statistik: Der Weg zur Datenanalyse

* Amazon Affiliate Link


Das könnte Sie auch interessieren: