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

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *