Как создать матрицу путаницы в 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 типа логистической регрессии
Логистическая регрессия против линейной регрессии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *