neg_mean_squared_error 的解释

Posted

技术标签:

【中文标题】neg_mean_squared_error 的解释【英文标题】:interpretation of neg_mean_squared_error 【发布时间】:2021-12-25 14:07:12 【问题描述】:

我对 sklearnmetrics 的 neg_mean_squared_error 有一点疑问。 我正在使用带有交叉验证的回归模型 Ridge

cross_val_score(estimator, X_train, y_train, cv=5, scoring='neg_mean_squared_error')

我正在使用不同的 alpha 值来选择最佳模型。

alphas= (0.01, 0.05, 0.1, 0.3, 0.8, 1, 5, 10, 15, 30, 50)

我计算了 cross_val_score 返回的 5 个值的平均值,并将它们绘制在这个图中(分数的平均值是 y 轴,alphas 是 x 轴)

做一些研究,我发现对于 neg_mean_squared_error,我们需要寻找“越小越好” 这是否意味着我必须“从字面上”寻找最小值,这将是我图表中的第一个值,还是意味着“最接近 0”​​的最小值

在我的情况下,所有值都是负数,这就是为什么我对解释有疑问

非常感谢

【问题讨论】:

如果您想进一步扩展,我也建议this post 【参考方案1】:

Scikit-learn 按照惯例认为分数遵循以下规则:“更高的值比更低的值更好”。在这种情况下,一个小的 MSE 表明您的预测接近数据,因此它遵循相反的规则。这就是为什么 sklearn 将负(实际上相反)MSE 视为分数。因此一个大的neg_mean_squared_error 比一个小的好。它也与您的图表一致,因为参数的极值通常会降低模型的性能。

来自 Scikit-learn 网站的屏幕,准确地指示了以下内容:

【讨论】:

非常感谢【参考方案2】:

来自docs

所有 scorer 对象都遵循较高返回值优于较低返回值的约定。因此,衡量模型和数据之间距离的指标,如 metrics.mean_squared_error,可以作为 neg_mean_squared_error 使用,它返回指标的否定值。

所以你想要的是你的值的最大值,即最接近 0。

【讨论】:

非常感谢!

以上是关于neg_mean_squared_error 的解释的主要内容,如果未能解决你的问题,请参考以下文章

leetcode算法题基础(四十五) 回溯算法总结 回溯法的解空间表示方法

两种典型的解空间树:子集树和排列树

安卓最强大的解压缩软件——ZArchiver

Python编写“求一元二次方程的解”

LAPACK 线性方程组的解中缺少一个元素

Perl 中的解包功能要求