Hoe je een verwarringsmatrix creëert in python


Logistische regressie is een type regressie dat we kunnen gebruiken als de responsvariabele binair is.

Een gebruikelijke manier om de kwaliteit van een logistisch regressiemodel te beoordelen, is door een verwarringsmatrix te maken, een tabel van 2 × 2 die de voorspelde waarden van het model weergeeft versus de werkelijke waarden van de testdataset.

Om een verwarringsmatrix te maken voor een logistisch regressiemodel in Python, kunnen we de functie verwarring_matrix() uit het sklearn- pakket gebruiken:

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

In het volgende voorbeeld ziet u hoe u deze functie kunt gebruiken om een verwarringsmatrix te maken voor een logistisch regressiemodel in Python.

Voorbeeld: een verwarringsmatrix maken in Python

Stel dat we de volgende twee tabellen hebben met daarin de werkelijke waarden van een responsvariabele, evenals de waarden voorspeld door een logistisch regressiemodel:

 #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]

We kunnen de functie verwarring_matrix() van sklearn gebruiken om een verwarringsmatrix voor deze gegevens te maken:

 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]]

Als we willen, kunnen we de crosstab() -functie van Panda gebruiken om een visueel aantrekkelijkere verwarringsmatrix te creëren:

 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

De kolommen tonen de voorspelde waarden voor de responsvariabele en de rijen tonen de werkelijke waarden.

We kunnen ook de nauwkeurigheid, precisie en herinnering berekenen met behulp van functies in het sklearn-pakket:

 #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 volgt een korte opfriscursus over nauwkeurigheid, precisie en terugroepactie:

  • Nauwkeurigheid : percentage correcte voorspellingen
  • Nauwkeurigheid : corrigeer positieve voorspellingen ten opzichte van het totale aantal positieve voorspellingen
  • Herinnering : positieve voorspellingen corrigeren ten opzichte van het totale aantal werkelijke positieve resultaten

En hier ziet u hoe elk van deze statistieken feitelijk werd berekend in ons voorbeeld:

  • Nauwkeurigheid : (6+8) / (6+4+2+8) = 0,7
  • Nauwkeurigheid : 8 / (8+4) = 0,667
  • Herinnering : 8 / (2+8) = 0,8

Aanvullende bronnen

Inleiding tot logistieke regressie
De 3 soorten logistische regressie
Logistieke regressie versus lineaire regressie

Einen Kommentar hinzufügen

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