Как создать матрицу путаницы в Python

Как создать матрицу путаницы в Python

Логистическая регрессия — это тип регрессии, который мы можем использовать, когда переменная ответа является двоичной.

Одним из распространенных способов оценки качества модели логистической регрессии является создание матрицы путаницы , которая представляет собой таблицу 2 × 2, в которой показаны прогнозируемые значения из модели и фактические значения из тестового набора данных.

Чтобы создать матрицу путаницы для модели логистической регрессии в Python, мы можем использовать функцию путаницы_matrix() из пакета sklearn :

from sklearn import 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]

Мы можем использовать функцию путаницы_матрицы () из 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]]

Если мы хотим, мы можем использовать функцию crosstab() из pandas, чтобы сделать более визуально привлекательную матрицу путаницы:

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
Actual 
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 типа логистической регрессии
Логистическая регрессия против линейной регрессии

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.