1、均方误差(L2损失)

均方误差(MSE)是最常用的回归损失函数,计算方法是求预测值与真实值之间距离的平方和,公式如下:

MSE=1m∑mi=1(yi−y^i)2MSE=\frac{1}{m} \sum_{m}^{i=1}\left(y_{i}-\hat{y}_{i}\right)^{2}MSE=m1​∑mi=1​(yi​−y^​i​)2

下图是MSE函数的图像,其中目标值是100,预测值的范围从-10000到10000,Y轴代表的MSE取值范围是从0到正无穷,并且在预测值为100处达到最小。通过数值模拟,平均绝对值误差的形状如下:

2、平均绝对值误差(L1损失)

MAE=1m∑mi=1∣(yi−y^i)∣MAE=\frac{1}{m} \sum_{m}^{i=1}\left|\left(y_{i}-\hat{y}_{i}\right)\right|MAE=m1​∑mi=1​∣(yi​−y^​i​)∣

平均绝对误差(MAE)是另一种用于回归模型的损失函数。MAE是目标值和预测值之差的绝对值之和。其只衡量了预测值误差的平均模长,而不考虑方向,取值范围也是从0到正无穷(如果考虑方向,则是残差/误差的总和——平均偏差(MBE))。


3、MSE(L2损失)与MAE(L1损失)的比较

简单来说,MSE计算简便,但MAE对异常点有更好的鲁棒性。下面就来介绍导致二者差异的原因。

训练一个机器学习模型时,我们的目标就是找到损失函数达到极小值的点。 当预测值等于真实值时,这两种函数都能达到最小。

下面是这两种损失函数的python代码。你可以自己编写函数,也可以使用sklearn内置的函数。

# true: Array of true target variable
# pred: Array of predictions
def mse(true, pred):return np.sum((true - pred)**2)/len(true)
def mae(true, pred):return np.sum(np.abs(true - pred))/len(true)
# also available in sklearn
# from sklearn.metrics import mean_squared_errorfrom
# sklearn.metrics import mean_absolute_error

下面让我们观察MAE和RMSE(即MSE的平方根,同MAE在同一量级中)在两个例子中的计算结果。第一个例子中,预测值和真实值很接近,而且误差的方差也较小。第二个例子中,因为存在一个异常点,而导致误差非常大。


4、MSE与MAE各自的优缺点

1、MSE对误差取了平方(令e=真实值-预测值),因此若e>1,则MSE会进一步增大误差。如果数据中存在异常点,那么e值就会很大,而e则会远大于|e|。因此,相对于使用MAE计算损失,使用MSE的模型会赋予异常点更大的权重。在第二个例子中,用RMSE计算损失的模型会以牺牲了其他样本的误差为代价,朝着减小异常点误差的方向更新。然而这就会降低模型的整体性能。如果训练数据被异常点所污染,那么MAE损失就更好用(比如,在训练数据中存在大量错误的反例和正例标记,但是在测试集中没有这个问题)。

2、直观上可以这样理解:如果我们最小化MSE来对所有的样本点只给出一个预测值,那么这个值一定是所有目标值的平均值。但如果是最小化MAE,那么这个值,则会是所有样本点目标值的中位数。众所周知,对异常值而言,中位数比均值更加鲁棒,因此MAE对于异常值也比MSE更稳定。

3、MAE存在一个严重的问题(特别是对于神经网络):更新的梯度始终相同,也就是说,即使对于很小的损失值,梯度也很大。这样不利于模型的学习。为了解决这个缺陷,我们可以使用变化的学习率,在损失接近最小值时降低学习率。而MSE在这种情况下的表现就很好,即便使用固定的学习率也可以有效收敛。MSE损失的梯度随损失增大而增大,而损失趋于0时则会减小。这使得在训练结束时,使用MSE模型的结果会更精确。

5、MSE与MAE如何选择

如果异常点代表在商业中很重要的异常情况,并且需要被检测出来,则应选用MSE损失函数。相反,如果只把异常值当作受损数据,则应选用MAE损失函数。总的来说,处理异常点时,MAE损失函数更稳定,但它的导数不连续,因此求解效率较低。MSE损失函数对异常点更敏感,但通过令其导数为0,可以得到更稳定的封闭解。

当两者问题同时存在时,就需要考虑其他的更合适的损失函数了,如Huber损失(平滑的平均绝对误差)、Log-Cosh损失、分位数损失等,详见:

机器学习大牛最常用的5个回归损失函数,你知道几个?

损失函数MSE和MAE的区别以及如何选择相关推荐

  1. MSE与MAE的区别与如何选择

    mark下,讲得非常好 http://rishy.github.io/ml/2015/07/28/l1-vs-l2-loss/ 参考:https://baijiahao.baidu.com/s?id= ...

  2. 负对数似然 交叉熵 mse mae的区别

    交叉熵的介绍见https://blog.csdn.net/jzwei023/article/details/115496906?spm=1001.2014.3001.5501 交叉熵 vs 二阶Los ...

  3. mse python_MSE与MAE的区别与选择

    MSE与MAE的区别与选择 1.均方误差(也称L2损失) 均方误差(MSE)是最常用的回归损失函数,计算方法是求预测值与真实值之间距离的平方和,公式如图. 2.平均绝对值误差(也称L1损失) 平均绝对 ...

  4. [机器学习与scikit-learn-51]:模型评估-图解回归模型的评估指标MSE、MAE、RMSE、R2、RSS与代码示例

    作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客 本文网址:https://blog.csdn.net/HiWangWenBing/article/detai ...

  5. 交叉熵和mse_损失函数 - MSE

    本来主要介绍机器学习中常见的损失函数MSE的定义以及它的求导特性. 数理统计中均方误差是指参数估计值与参数值之差平方的期望值,记为MSE.MSE是衡量"平均误差"的一种较方便的方法 ...

  6. 序列预测中损失函数详解-MAE、MAPE、RMSE、Huber

    损失函数 损失函数用来评价模型的预测值和真实值不一样的程度,损失函数越好,通常模型的性能越好. 文章目录 损失函数 前言 预测与偏置 常见的损失函数 Error 与 Bias RMSE 平均绝对误差( ...

  7. 预测评价指标:MSE,RMSE,MAE,MAPE,SMAPE

    目录 前言 MSE RMSE MAPE SMAPE Python程序 前言 分类问题的评价指标是准确率,回归算法的评价指标是MSE,RMSE,MAE.测试数据集中的点,距离模型的平均距离越小,该模型越 ...

  8. 均方误差mse均方根误差rmse_损失函数 - MSE

    本来主要介绍机器学习中常见的损失函数MSE的定义以及它的求导特性. 数理统计中均方误差是指参数估计值与参数值之差平方的期望值,记为MSE.MSE是衡量"平均误差"的一种较方便的方法 ...

  9. ML之ME/LF:机器学习中回归预测模型评估指标(MSE/RMSE/MAE)简介、使用方法、代码实现、案例应用之详细攻略

    ML之ME/LF:机器学习中回归预测模型评估指标(MSE/RMSE/MAE)简介.使用方法.代码实现.案例应用之详细攻略 目录 回归预测问题中评价指标简介 RMSE 标准差SD MSE函数

  10. python求均方根误差_python之MSE、MAE、RMSE的使用

    我就废话不多说啦,直接上代码吧! target = [1.5, 2.1, 3.3, -4.7, -2.3, 0.75] prediction = [0.5, 1.5, 2.1, -2.2, 0.1, ...

最新文章

  1. 66篇论文入选CVPR 2021,商汤的秘籍竟是“大力出奇迹”
  2. 11 Java NIO Non-blocking Server-翻译
  3. 在iOS中求数组元素中最大数与最小数
  4. Cookie对象的应用
  5. word如何设置上标形式_如何在word中设置特殊页码
  6. 2017安徽二级c语言,2017计算机二级C语言测试题及答案
  7. 什么是mysql的索引_什么是MySQL索引?【详解】
  8. [OpenGL] opengl常见问题汇总
  9. json转对象的时候字段为空值的时候会被过滤
  10. php for求合,怎么用PHP for循环求1到100的和
  11. 世界上最详细的Linux C udp实现文件传输
  12. PCAN Explorer之plot插件导出数据时间格式转换
  13. Length和lengthb的区别
  14. Java学习笔记001_概述及环境搭载
  15. Disparity(视差)简单解释
  16. 解决Mac上plt画图中文无法显示的问题
  17. 飞利浦e570有JAVA吗_飞利浦E570不仅仅是手机还是一款可通话的移动电源
  18. 2021第三届长安杯检材三复盘
  19. 2023.02.11草图大师浴室效果图1skp素材效果图
  20. 七牛云测试域名过期了,全部图片下载方法

热门文章

  1. 软件工程师的工作经验总结
  2. Endnote教程:如何快速搞定论文里的参考文献格式?
  3. (ECCV 2022)E-NeRV: Expedite Neural Video Representation with Disentangled Spatial-Temporal Context
  4. p图软件pⅰc_P图教程|教你做超火的iMessage图 所需软件:Picsart QQ_修图软件_滤镜_picsart怎么样_纯白色_相册_我超会p图der_摄影_摄影技巧_修图技巧...
  5. 本地网络出现了一个意外的情况,不能完成所有你在设置中所要求的更改
  6. 北漂4年,我选择了回到家乡,我选择了父母在,不远行。
  7. 华为服务器插键盘的位置,服务器如何调出软键盘
  8. r语言nonzerocoef函数_文献汇报||Lasso方法在肿瘤基因位点筛选中的应用
  9. php 文字合成图片,PHP图片和文字合成
  10. 数据库相关类型(日期、复合、bit、布尔)