首页 > 解决方案 > 逻辑回归 - 模型准确度得分和预测不相符

问题描述

为二进制分类任务创建了一个非常简单的 scikit-learn 逻辑回归模型。训练集和测试集是分开的。使用相同数据集的随机森林模型和决策树给出了大约 0.9 的准确度。

这是逻辑回归模型:

logreg_model = LogisticRegression(random_state=99).fit(X_train, y_train)
logreg_acc = logreg_model.score(X_test, y_test)
logreg_pred = logreg_model.predict(X_test) 
print("Log reg model accuracy:", logreg_acc)
print("Log reg prediction:", logreg_pred)
print("Actual:",y_test)

结果如下:

Log reg model accuracy: 0.8701298701298701
Log reg prediction: [0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
 0 0 0 0 0 0]
Actual: [1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0
 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
 0 0 1 0 0 0]

当预测把所有的分类都弄错的时候,准确率怎么可能是 0.87?这里有什么错误?我错过了什么?

谢谢你。

标签: pythonscikit-learnclassificationlogistic-regression

解决方案


关于您拥有的准确性

您正确预测了大部分零点。对我来说,你得到的准确度分数看起来相当正确。

您可以通过在您的and上使用accuracy_score进行仔细检查。logreg_predy_test

关于您可能正在寻找的内容

您似乎对您的预测是否1正确更感兴趣。

您可能有兴趣查看其他度量,例如召回率精度


推荐阅读