Як створити матрицю плутанини в python


Логістична регресія – це тип регресії, який ми можемо використовувати, коли змінна відповіді є двійковою.

Поширеним способом оцінки якості моделі логістичної регресії є створення матриці плутанини , яка є таблицею 2 × 2, яка показує прогнозовані значення моделі порівняно з фактичними значеннями тестового набору даних.

Щоб створити матрицю плутанини для моделі логістичної регресії в Python, ми можемо використати функцію confusion_matrix() із пакету sklearn :

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

У наступному прикладі показано, як використовувати цю функцію для створення матриці плутанини для моделі логістичної регресії в Python.

Приклад: створення матриці плутанини в Python

Припустимо, що ми маємо наступні дві таблиці, що містять фактичні значення змінної відповіді, а також значення, передбачені моделлю логістичної регресії:

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

Ми можемо використати функцію confusion_matrix() sklearn, щоб створити матрицю плутанини для цих даних:

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

Якщо ми хочемо, ми можемо використати функцію pandas crosstab() для створення більш візуально привабливої матриці плутанини:

 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

Стовпці показують прогнозовані значення для змінної відповіді, а рядки показують фактичні значення.

Ми також можемо обчислити точність, точність і відкликання за допомогою функцій у пакеті 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

Ось коротка інформація про точність, точність і запам’ятовування:

  • Точність : відсоток правильних прогнозів
  • Точність : правильні позитивні прогнози відносно загальної кількості позитивних прогнозів
  • Нагадування : виправлення позитивних прогнозів проти загальних фактичних позитивних результатів

І ось як насправді розраховувався кожен із цих показників у нашому прикладі:

  • Точність : (6+8) / (6+4+2+8) = 0,7
  • Точність : 8 / (8+4) = 0,667
  • Нагадування : 8 / (2+8) = 0,8

Додаткові ресурси

Вступ до логістичної регресії
3 типи логістичної регресії
Логістична регресія проти лінійної регресії

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *