如何在 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