Python逻辑回归混淆矩阵无假阳性假阴性问题排查咨询
逻辑回归混淆矩阵结果异常排查方案
- 首先核对预测错误数的统计逻辑:你提到手动统计到839例预测错误样本,先运行代码
print(sum(y_pred_test != y_test))直接输出预测不符的样本总数,和你手动统计的数值比对,确认你手动统计时是否用错了对比的标签(比如误用了训练集标签、把预测值当真实标签等)。 - 修复混淆矩阵的调用问题:你当前代码中混淆矩阵的变量名和函数名完全重名,
confusion_matrix = confusion_matrix(y_test, y_pred_test)会直接覆盖掉从sklearn导入的confusion_matrix函数,多次运行代码时会出现调用异常。建议修改为以下代码重新计算:
from sklearn.metrics import confusion_matrix # 修改变量名避免覆盖原函数 cm = confusion_matrix(y_test, y_pred_test) print('Confusion Matrix: \n', cm)
- 排查标签与预测值的格式问题:二分类场景下先确认
y_test、y_pred_test的取值都是布尔类型或者0/1整数类型,排除其中一组是输出概率浮点数、另一组是分类标签的格式不匹配问题。另外你初始化模型时设置了fit_intercept = False,如果你的输入特征未做中心化处理,会导致模型拟合逻辑异常,可以先去掉该参数默认开启截距项,重新训练后验证结果。 - 排查数据集拆分与训练逻辑错误:你提到“数据集不含目标变量”不符合逻辑回归作为监督学习算法的训练要求,必须确认你训练时用到了真实的目标标签,且拆分训练集、测试集时,
X_test和y_test是一一对应的匹配关系,没有出现y_test误用预测值的情况。另外确认模型训练时调用的是model.fit(X_train, y_train),没有误用测试集数据训练导致过拟合,出现测试集全对的假象。
内容的提问来源于stack exchange,提问作者Bia
相关产品推荐
相关产品推荐

