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