Jak utworzyć macierz zamieszania w pythonie
Regresja logistyczna to rodzaj regresji, którego możemy użyć, gdy zmienna odpowiedzi jest binarna.
Powszechnym sposobem oceny jakości modelu regresji logistycznej jest utworzenie macierzy zamieszania , czyli tabeli 2 × 2, która pokazuje przewidywane wartości modelu w porównaniu z rzeczywistymi wartościami testowego zbioru danych.
Aby utworzyć macierz zamieszania dla modelu regresji logistycznej w Pythonie, możemy użyć funkcji Confused_matrix() z pakietu sklearn :
from sklearn import metrics metrics.metrics. confusion_matrix (y_actual, y_predicted)
Poniższy przykład pokazuje, jak używać tej funkcji do tworzenia macierzy zamieszania dla modelu regresji logistycznej w języku Python.
Przykład: tworzenie macierzy zamieszania w Pythonie
Załóżmy, że mamy następujące dwie tabele zawierające rzeczywiste wartości zmiennej odpowiedzi, a także wartości przewidywane przez model regresji logistycznej:
#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]
Możemy użyć funkcji Confused_matrix() sklearna, aby utworzyć macierz zamieszania dla tych danych:
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]]
Jeśli chcemy, możemy użyć funkcji crosstab() pandy, aby utworzyć bardziej atrakcyjną wizualnie macierz zamieszania:
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
Kolumny pokazują przewidywane wartości zmiennej odpowiedzi, a wiersze pokazują wartości rzeczywiste.
Dokładność, precyzję i przypominanie możemy również obliczyć za pomocą funkcji pakietu sklearn:
#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
Oto krótkie przypomnienie o dokładności, precyzji i zapamiętywaniu:
- Dokładność : Procent poprawnych przewidywań
- Dokładność : Popraw pozytywne przewidywania w stosunku do wszystkich pozytywnych przewidywań
- Przypomnienie : Korygowanie pozytywnych przewidywań w stosunku do łącznej liczby rzeczywistych pozytywnych wyników
A oto jak w naszym przykładzie obliczono każdy z tych wskaźników:
- Dokładność : (6+8) / (6+4+2+8) = 0,7
- Dokładność : 8 / (8+4) = 0,667
- Przypomnienie : 8 / (2+8) = 0,8
Dodatkowe zasoby
Wprowadzenie do regresji logistycznej
Trzy rodzaje regresji logistycznej
Regresja logistyczna a regresja liniowa