So erstellen sie eine verwirrungsmatrix in python


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

Eine gängige Methode zur Beurteilung der Qualität eines logistischen Regressionsmodells besteht darin, eine Verwirrungsmatrix zu erstellen, bei der es sich um eine 2 × 2-Tabelle handelt, die die vorhergesagten Werte des Modells im Vergleich zu den tatsächlichen Werten des Testdatensatzes zeigt.

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

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

Das folgende Beispiel zeigt, wie Sie mit dieser Funktion eine Verwirrungsmatrix für ein logistisches Regressionsmodell in Python erstellen.

Beispiel: Erstellen einer Verwirrungsmatrix in Python

Angenommen, wir haben die folgenden zwei Tabellen, die die tatsächlichen Werte einer Antwortvariablen sowie die von einem logistischen Regressionsmodell vorhergesagten Werte enthalten:

 #define array of actual values
y_actual = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]

#define array of predicted values
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 Funktion „confusion_matrix()“ von sklearn verwenden, um eine Verwirrungsmatrix für diese Daten zu erstellen:

 from sklearn import metrics

#create confusion matrix
c_matrix = metrics. confusion_matrix (y_actual, y_predicted)

#print confusion matrix
print (c_matrix)

[[6 4]
 [2 8]]

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

 import pandas as pd

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

#create confusion matrix
print (pd. crosstab (y_actual, y_predicted))

Predicted 0 1
Current         
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 Genauigkeit, Präzision und Rückruf auch mithilfe der Funktionen im sklearn-Paket berechnen:

 #print accuracy of model
print ( metrics.accuracy_score (y_actual, y_predicted))

0.7

#print precision value of model
print ( metrics.precision_score (y_actual, y_predicted))

0.667

#print recall value of model
print (metrics. recall_score (y_actual, y_predicted))

0.8

Hier ist eine kurze Auffrischung zu Genauigkeit, Präzision und Rückruf:

  • Genauigkeit : Prozentsatz der richtigen Vorhersagen
  • Genauigkeit : Korrigieren Sie positive Vorhersagen im Verhältnis zur Gesamtzahl der positiven Vorhersagen
  • Erinnerung : Korrigieren Sie positive Vorhersagen anhand der gesamten tatsächlichen positiven Ergebnisse

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

  • Genauigkeit : (6+8) / (6+4+2+8) = 0,7
  • Genauigkeit : 8 / (8+4) = 0,667
  • Erinnerung : 8 / (2+8) = 0,8

Zusätzliche Ressourcen

Einführung in die logistische Regression
Die 3 Arten der logistischen Regression
Logistische Regression vs. lineare Regression

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert