【发布时间】:2019-06-07 16:33:06
【问题描述】:
我通常只是将其发布到 Stack Overflow,但我想了想并意识到这实际上不是一个编码问题 - 这是一个 ML 问题。
非常感谢和欢迎任何其他关于代码或其他任何内容的反馈!
所以我在 Kaggle 上解决了巨大的问题。我准备好了四个数据集:
- features_train
- features_test
- target_train
- target_test
考虑到这一点,我有两个问题,尽管第二个问题很重要。
问题一:我对下一步的理解是否正确?
我们在训练数据上拟合我们的模型,然后我们创建一个预测 (pred),它试图根据我们的 features_test 数据进行预测。这意味着我们的 pred 和 target_test 数据集理论上应该是相同的(如果模型运行良好的话)。
这意味着要证明模型的准确性,我们可以简单地比较 pred 和 target_test 的结果,也就是 accuracy_score em> 函数来自 Sklearn。
问题 2:使用模型的 score 方法和 accuracy_score 函数有什么区别?
这让我很困惑。您可以在单元格 97 中看到,即我使用的“模型 1”标题下的第一个单元格:
clf.score(features_test, target_test)
这是
的结果0.8609865470852018
不过,后来我也用:
from sklearn.metrics import accuracy_score
print(accuracy_score(target_test, pred))
这也导致了
0.8609865470852018
这两个分数如何相同?我做错了什么吗?或者这两个步骤基本上都在做同样的事情?如何..? score() 属性是否有效地创建了 pred 数据框并在后台对其进行检查?
【问题讨论】:
-
clf.score 和 accuracy_score 计算相同的指标。两者都计算正确分类的标签比例。
标签: python machine-learning scikit-learn