sklearn中模型的得分函数输出

时间:2016-04-05 07:50:39

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

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

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,这将得分"得分"是基于那个来计算的?

我似乎无法找到相关的任何文档 - 我真的很感激帮助。

谢谢!

1 个答案:

答案 0 :(得分:0)

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

这里有2个例子,其中4个分类正确,因此准确度为2/4 = 0.5

如果您使用 mean_squared_error ,那么您的问题就是回归问题。在 GridSearch 中使用此指标会找到最低的错误。

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

因此,如果您想显示错误,请确保获取分数的绝对值

>>> abs(grid_search.best_score_)
3.2