是否sklearn.metrics.均值平方误差越大越好(否定)?

Is sklearn.metrics.mean_squared_error the larger the better (negated)?(是否sklearn.metrics.均值平方误差越大越好(否定)?)

本文介绍了是否sklearn.metrics.均值平方误差越大越好(否定)?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

一般来说,mean_squared_error越小越好。

当我使用skLearning指标包时,它在文档页面中显示:http://scikit-learn.org/stable/modules/model_evaluation.html

所有记分器对象都遵循较高的返回值是 比较低的返回值要好。因此,衡量 模型和数据之间的距离,例如 指标.均值平方误差,以neg_均值平方误差形式提供 它们返回度量值的负值。

但是,如果我转到:http://scikit-learn.org/stable/modules/generated/sklearn.metrics.mean_squared_error.html#sklearn.metrics.mean_squared_error

它说它是Mean squared error regression loss,没有说它被否定。

如果我查看源代码并检查那里的示例:https://github.com/scikit-learn/scikit-learn/blob/a24c8b46/sklearn/metrics/regression.py#L183它正在执行正常的mean squared error,即越小越好。

所以我想知道我是否遗漏了文档中被否定的部分。谢谢!

推荐答案

实际函数"mean_squared_error"没有任何关于负部分的内容。但是,当您尝试‘neg_Means_Squared_Error’时实现的函数将返回得分的否定版本。

请查看源代码,了解the source code中的定义:

neg_mean_squared_error_scorer = make_scorer(mean_squared_error,
                                        greater_is_better=False)

观察参数greater_is_better如何设置为False

现在,所有这些分数/损失都被用于各种其他事情,如cross_val_core、cross_val_Forecast、GridSearchCV等。例如,在‘Accuracy_Score’或‘F1_Score’的情况下,分数越高越好,但在失败(错误)的情况下,分数越低越好。为了以相同的方式处理它们,它返回负值。

因此,此实用程序用于以相同的方式处理分数和损失,而无需更改特定损失或分数的源代码。

所以,你没有错过任何东西。你只需要照顾到你想要使用损失功能的场景。如果只想计算Mean_Square_Error,则只能使用mean_squared_error。但如果您想使用它来调整您的模型,或使用Scikit中提供的实用程序进行交叉验证,请使用'neg_mean_squared_error'

也许可以添加一些有关这方面的详细信息,我将详细解释。

这篇关于是否sklearn.metrics.均值平方误差越大越好(否定)?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本文标题为:是否sklearn.metrics.均值平方误差越大越好(否定)?