如何在 python 中创建混淆矩阵


逻辑回归是当响应变量是二元时我们可以使用的一种回归。

评估逻辑回归模型质量的常见方法是创建一个混淆矩阵,它是一个 2 × 2 的表,显示模型的预测值与测试数据集的实际值。

要在Python中为逻辑回归模型创建混淆矩阵,我们可以使用sklearn包中的confusion_matrix()函数:

 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]

我们可以使用sklearn的confusion_matrix()函数为这些数据创建一个混淆矩阵:

 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 种类型
逻辑回归与线性回归

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注