MSE vs MAE:选择适合你的模型误差损失函数

均方误差(MSE)和平均绝对误差(MAE)是两种常用的损失函数,用于衡量模型预测值与实际值之间的差异

1. 定义

  • 均方误差(MSE)
    MSE = 1 n ∑ i = 1 n ( y i − y ^ i ) 2 \text{MSE} = \frac{1}{n} \sum_{i=1}^{n} (y_i - \hat{y}_i)^2 MSE=n1i=1n(yiy^i)2
    其中, y i y_i yi 是第 i i i 个样本的实际值, y ^ i \hat{y}_i y^i 是模型的预测值, n n n 是样本数量。
  • 平均绝对误差(MAE)
    MAE = 1 n ∑ i = 1 n ∣ y i − y ^ i ∣ \text{MAE} = \frac{1}{n} \sum_{i=1}^{n} |y_i - \hat{y}_i| MAE=n1i=1nyiy^i
    其中, y i y_i yi 是第 i i i 个样本的实际值, y ^ i \hat{y}_i y^i 是模型的预测值, n n n 是样本数量。

2. 对误差的惩罚

  • MSE:MSE 对误差的惩罚是二次的,即误差越大,损失函数的值增加得越快。这使得 MSE 对异常值(outliers)非常敏感。
  • MAE:MAE 对误差的惩罚是线性的,即误差越大,损失函数的值增加得越快,但增加的速度比 MSE 慢。这使得 MAE 对异常值不太敏感。

3. 梯度性质

  • MSE:MSE 的梯度是连续的,这使得使用梯度下降等优化算法时,模型的参数可以平滑地更新。
  • MAE:MAE 的梯度在误差为 0 时是不连续的,这使得使用梯度下降等优化算法时,模型的参数更新可能不够平滑。

4. 计算复杂度

  • MSE:MSE 的计算相对简单,只需要对误差进行平方,然后求和。
  • MAE:MAE 的计算相对简单,只需要对误差取绝对值,然后求和。

5. 适用场景

  • MSE:MSE 适用于对异常值敏感的场景,例如,当数据集中的异常值较少时,使用 MSE 可以使模型更加关注大多数样本。
  • MAE:MAE 适用于对异常值不敏感的场景,例如,当数据集中的异常值较多时,使用 MAE 可以使模型更加关注大多数样本,而不是被异常值所影响。

6. 总结

  • MSE:MSE 对误差的惩罚是二次的,对异常值敏感,梯度连续,计算简单,适用于对异常值敏感的场景。
  • MAE:MAE 对误差的惩罚是线性的,对异常值不敏感,梯度不连续,计算简单,适用于对异常值不敏感的场景。

因此,选择 MSE 还是 MAE 作为损失函数,需要根据具体问题和数据集的特性来决定。如果数据集中异常值较少,可以使用 MSE;如果数据集中异常值较多,可以使用 MAE。

猜你喜欢

转载自blog.csdn.net/2302_80236633/article/details/146497663