Как создать матрицу путаницы в python
Логистическая регрессия — это тип регрессии, который мы можем использовать, когда переменная ответа является двоичной.
Распространенный способ оценить качество модели логистической регрессии — создать матрицу путаницы , которая представляет собой таблицу 2 × 2, в которой показаны прогнозируемые значения модели в сравнении с фактическими значениями набора тестовых данных.
Чтобы создать матрицу путаницы для модели логистической регрессии в Python, мы можем использовать функцию запутанности_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]
Мы можем использовать функцию запутанности_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 типа логистической регрессии
Логистическая регрессия против линейной регрессии