Як створити матрицю плутанини в 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 типи логістичної регресії
Логістична регресія проти лінійної регресії