【问题标题】:Output of score function for model in sklearnsklearn中模型的得分函数输出
【发布时间】:2016-07-25 00:45:15
【问题描述】:

我正在尝试评估模型的性能,但我似乎无法掌握实际返回的分数。文档说:

Returns the mean accuracy on the given test data and labels.
In multi-label classification, this is the subset accuracy which is a harsh 
metric since you require for each sample that each label set be correctly predicted.

这不直观 - 这里的准确性是什么?我想查看均方误差的值来检查模型。因此,如果我的模型的 MSE 为 30%,这是否意味着它的“分数”为 70%?如果我运行一个通过交叉验证选择参数的模型,评分函数设置为mean_squared_error,这个“分数”是否会基于此计算?

我似乎找不到任何关于此的文档 - 我非常感谢您的帮助。

谢谢!

【问题讨论】:

    标签: python python-3.x scikit-learn


    【解决方案1】:

    accuracy 是正确分类示例的百分比。

    >>> from sklearn.metrics import accuracy_score
    >>> y_pred = [0, 2, 1, 3]
    >>> y_true = [0, 1, 2, 3]
    >>> accuracy_score(y_true, y_pred)
    0.5
    

    这里有 4 个样本中有 2 个分类正确,所以准确度是 2/4 = 0.5

    如果您使用的是 mean_squared_error,那么您的问题是回归问题。在你的 GridSearch 中使用这个指标会发现最低的错误。

    诀窍是,在进行网格搜索交叉验证时,目标是最大化得分函数。但是最大化错误将是一个坏主意,因此为了与 sklearn API 保持一致,他们将与您的错误相反的值作为分数。通过这样做,您可以通过最小化错误来最大化您的分数。

    所以如果你想显示你的错误,请确保你取分数的绝对值

    >>> abs(grid_search.best_score_)
    3.2
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-06-20
      • 2022-11-08
      • 1970-01-01
      • 2016-03-21
      • 2013-03-29
      • 2019-08-04
      • 1970-01-01
      • 2017-05-01
      相关资源
      最近更新 更多