【问题标题】:What's the difference between the score method on a fitted model, vs accuracy_score from scikit-learn?拟合模型上的 score 方法与 scikit-learn 中的 accuracy_score 有什么区别?
【发布时间】:2019-06-07 16:33:06
【问题描述】:

我通常只是将其发布到 Stack Overflow,但我想了想并意识到这实际上不是一个编码问题 - 这是一个 ML 问题。

非常感谢和欢迎任何其他关于代码或其他任何内容的反馈!

The Jupyter Notebook

所以我在 Kaggle 上解决了巨大的问题。我准备好了四个数据集:

  • features_train
  • features_test
  • target_train
  • target_test

考虑到这一点,我有两个问题,尽管第二个问题很重要。

问题一:我对下一步的理解是否正确?

我们在训练数据上拟合我们的模型,然后我们创建一个预测 (pred),它试图根据我们的 features_test 数据进行预测。这意味着我们的 predtarget_test 数据集理论上应该是相同的(如果模型运行良好的话)。

这意味着要证明模型的准确性,我们可以简单地比较 predtarget_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


【解决方案1】:

对于此类问题,可以说您最好的朋友是文档;引用model evaluation 上的 scikit-learn 文档:

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

  • Estimator score method:Estimator 有一个score 方法,为他们设计的问题提供默认评估标准 解决。本页未对此进行讨论,但在每个估算者的 文档。
  • 评分参数:使用交叉验证的模型评估工具(如model_selection.cross_val_scoremodel_selection.GridSearchCV) 依赖于内部评分策略。 这在评分参数:定义模型部分中进行了讨论 评估规则。
  • 度量函数metrics 模块实现了针对特定目的评估预测误差的函数。这些指标是 在分类指标、多标签排名部分详细介绍 指标、回归指标和聚类指标。

在您在代码中使用的所有 3 个分类器(logistic regressionrandom forestdecision tree)的文档中,都有相同的描述:

分数X, y, sample_weight=None
返回上的平均准确度 给定测试数据和标签。

它回答了您使用的特定型号的第二个问题。

尽管如此,在盲目相信估计器附带的score 方法之前,您应该始终检查文档;例如,在linear regressiondesision tree regressor 中,score 返回决定系数 R^2,ML 从业者在构建预测模型时几乎不会使用它(统计学家经常使用它来构建解释性模型,但这是另一回事)。

顺便说一句,我简要浏览了您链接到的代码,我看到您计算了 MSE、MAE 和 RMSE 等指标 - 请记住,这些是回归指标,它们不是在分类设置中有意义,例如您在此处遇到的问题(反过来,准确性在回归设置中毫无意义)...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-08-01
    • 2015-03-10
    • 2017-08-06
    • 2018-03-18
    • 2021-05-09
    • 2018-07-02
    • 2020-07-13
    • 2017-07-13
    相关资源
    最近更新 更多