为了账号安全,请及时绑定邮箱和手机立即绑定

拟合模型上的 score 方法与 scikit-learn 中的accuracy_score

拟合模型上的 score 方法与 scikit-learn 中的accuracy_score

蝴蝶刀刀 2021-10-10 15:21:36
我通常只是将其发布到 Stack Overflow,但我考虑了一下并意识到这实际上不是一个编码问题 - 这是一个 ML 问题。对代码或其他任何内容的任何其他反馈都非常感谢和欢迎!Jupyter 笔记本所以我正在 Kaggle 上做这个巨大的问题。我准备好了四个数据集:features_train功能测试目标火车目标_测试考虑到这一点,我有两个问题,尽管第二个是重要的。问题1:我对下一步的理解是否正确?我们在训练数据上拟合我们的模型,然后我们创建一个预测 ( pred ),它试图根据我们的features_test数据进行预测。这意味着我们的pred和target_test数据集理论上应该是相同的(如果模型运行良好)。这意味着为了证明模型的准确性,我们可以简单地比较pred和target_test之间的结果,这正是Sklearn 中的accuracy_score函数所做的。问题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()属性是否有效地创建了一个predDataframe 并在后台进行检查?
查看完整描述

1 回答

?
慕斯709654

TA贡献1840条经验 获得超5个赞

对于此类问题,可以说您最好的朋友是文档;引用 scikit-learn 文档中关于模型评估的内容:

有 3 种不同的 API 可用于评估模型预测的质量:

  • 估算器评分方法:估算器有一种score方法,为它们旨在解决的问题提供默认评估标准。本页未讨论这一点,而是在每个估算器的文档中讨论。

  • 评分参数:使用交叉验证(例如model_selection.cross_val_score和 model_selection.GridSearchCV)的模型评估工具依赖于内部评分策略。评分参数:定义模型评估规则部分对此进行了讨论。

  • 度量函数:该metrics模块实现了为特定目的评估预测误差的函数。这些指标在分类指标、多标签排名指标、回归指标和聚类指标的部分中有详细说明。

在您在代码中使用的所有 3 个分类器(逻辑回归、随机森林和决策树)的文档中,有相同的描述:

score ( X, y, sample_weight=None )
返回给定测试数据和标签的平均准确率。

这回答了您对所使用的特定模型的第二个问题。

尽管如此,在盲目相信score估算器附带的方法之前,您应该始终检查文档;在线性回归和desision树回归量,例如,score返回判定R ^ 2,这实际上从未使用ML从业者建立的系数的预测模型(它是经常使用的统计人员构建说明模型,但是另一回事)。

顺便说一句,我简要地瞥见了您链接到的代码,我看到您计算了 MSE、MAE 和 RMSE 等指标 - 请记住,这些是回归指标,它们在分类设置中没有意义,例如你面对这里(反过来,准确性在回归设置中毫无意义)......


查看完整回答
反对 回复 2021-10-10
  • 1 回答
  • 0 关注
  • 1024 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信