Логистическая регрессия — это тип регрессии, который мы можем использовать, когда переменная ответа является двоичной.
Одним из распространенных способов оценки качества модели логистической регрессии является создание матрицы путаницы , которая представляет собой таблицу 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 типа логистической регрессии
Логистическая регрессия против линейной регрессии