scikit-learn 中的负平均绝对误差是多少?
Posted
技术标签:
【中文标题】scikit-learn 中的负平均绝对误差是多少?【英文标题】:What is the negative mean absolute error in scikit-learn? 【发布时间】:2019-09-11 03:47:05 【问题描述】:我正在尝试使用 SciKit Learn 的 SVM 模块来训练模型。对于评分,我找不到mean_absolute_error
(MAE),但是,negative_mean_absolute_error
(NMAE) 确实存在。这两个指标有什么区别?假设我得到了 2 个模型的以下结果:
model 1 (NMAE = -2.6), model 2(NMAE = -3.0)
哪种型号更好?是模型 1 吗?
此外,负面与正面相比如何?说出以下内容:
model 1 (NMAE = -1.7), model 2(MAE = 1.4)
这里,哪个模型更好?
【问题讨论】:
【参考方案1】:顾名思义,负 MAE 就是 MAE 的负数,根据定义,它 (MAE) 是一个正数。由于 MAE 是一个错误指标,即越低越好,负 MAE 则相反:-2.6
的值优于-3.0
的值。
只需删除负号并将它们视为 MAE 值(可以说这也回答了您的第二个问题)。
请记住,MAE 在 scikit-learn 中始终可以作为通用指标 (docs)。
【讨论】:
【参考方案2】:我想在这里补充一点,当您通过 GridSearchCV() 比较多个算法时,这个负错误也有助于找到最佳算法。
这是因为在训练之后,GridSearchCV() 会对所有算法(估计器)进行排名,并告诉您哪一个是最好的。现在,当您使用错误函数时,sklearn 将得分较高的估计器排名较高,这在 MAE 的情况下是不正确的(以及 MSE 和其他一些)。
为了解决这个问题,库翻转错误符号,因此最高 MAE 将排名最低,反之亦然。
所以回答你的问题:-2.6 比 -3.0 好,因为实际 MAE 分别是 2.6 和 3.0。
【讨论】:
以上是关于scikit-learn 中的负平均绝对误差是多少?的主要内容,如果未能解决你的问题,请参考以下文章
为啥将神经网络质量表示为 1 减去预测中的平均绝对误差与预测值范围之比?
均方误差(MSE)和均方根误差(RMSE)和平均绝对误差(MAE)
[人工智能-深度学习-9]:神经网络基础 - 常见loss损失函数之均分误差MSE绝对值误差MAE平滑平均绝对误差Huber