外观
Huber 回归
Huber Regression
回归模型的一个大问题是它们对离群点很敏感。以线性回归为例。哪怕只有少数离群点,也会显著影响线性回归的表现,如下图所示:

而且不难找出这个问题的根源。本质上,损失函数(MSE)会随残差项(真实值-预测值)迅速放大。

因此,哪怕只有少数残差很大的数据点,也会影响参数估计。
Huber 损失(或 Huber 回归)恰好解决这个问题。简而言之,它试图减小具有大残差的数据点对误差的贡献。一种简单、直观又显而易见的做法是,对残差项施加一个阈值 δ:
- 如果残差小于阈值,就用 MSE(这里没有变化)。
- 否则,就用一个输出比 MSE 更小的损失函数——比如线性的。如下图所示:
- 对于小于阈值 δ 的残差 → 我们用 MSE。
- 否则,我们用一个输出比 MSE 更小的线性损失函数。

在数学上,Huber 损失定义如下:


它的有效性从下图可见一斑:
- 线性回归受离群点影响
- Huber 回归更稳健。
虽然试错是一种办法,但我常喜欢画一张残差图。如下图所示:下面的图通常被称为棒棒糖图,因为它的外观。

- 像往常一样训练一个线性回归模型。
- 在训练数据上计算残差(=真实值-预测值)。
- 为每个数据点绘制绝对残差。
一个好处是,我们可以为任意维度的数据集绘制这张图。目的只是绘制(真实值-预测值),而这些值始终是一维的。 254
接下来,你可以主观地决定一个合理的阈值 δ。
在 Huber 回归中使用线性损失函数,是为了减少本应由 MSE 产生的大误差贡献。因此,我们还可以进一步减小误差贡献,比如使用一个平方根损失函数,如下所示:

我不确定这是否有人提出过,所以我决定把它叫做

SqrtDasic Loss。
显然,对于所有超过阈值 δ 的残差,平方根损失函数的误差贡献都是最低的。