sklearn的neg_mean_squared_error解读及Ridge回归调参疑问
sklearn neg_mean_squared_error取值逻辑解答
首先明确结论:你查阅资料提到的「越小越好」是针对原始均方误差(MSE)的规则,而你调用scoring='neg_mean_squared_error'得到的负数值,越接近0、绝对值越小代表模型效果越好,也就是你可以直接取交叉验证得分均值最大的那组alpha作为最优参数。
具体逻辑如下:
- scikit-learn的模型评估体系默认遵循「得分越高,模型效果越好」的统一规则,对于MSE这类本身是损失值、数值越小效果越好的指标,框架会自动添加负号转为负向损失,适配统一的排序逻辑。
- 原始MSE的取值范围为[0, +∞),值越小拟合误差越低;取反后的
neg_mean_squared_error取值范围为(-∞, 0],对应的规律就变为数值越大(越接近0),原始MSE越小,模型效果越好。
额外补充:如果你更习惯看正的MSE值做判断,可以对cross_val_score返回的每个结果加负号转为正的MSE,再取均值找最小值对应的alpha即可,两种方式得到的最优alpha是完全一致的。
内容的提问来源于stack exchange,提问作者Josh.h
相关产品推荐
相关产品推荐

