1.1.16. Robustness regression: outliers and modeling errors(稳定性回归)

1.1.16. Robustness regression: outliers and modeling errors

稳健回归有点难,把它整理出来太花时间了,所以我决定转载一下我自己学习是看的一篇博客。老规矩,并非完全照搬,里面有内容结果上的调整和我自己的注释,希望大家有所收获。

一、最小二乘法的弊端

很多关于线性回归的模型,都是基于最小二乘法来实现的。但是,当数据样本点出现很多的异常点(outliers),这些异常点对回归模型的影响会非常的大,传统的基于最小二乘的回归方法将不适用。

当然,可以考虑在做回归分析之前,对数据做预处理,剔除掉那些异常点。但是,在实际的数据中,存在两个问题:

  1. 异常点并不能很好的确定,并没有一个很好的标准用于确定哪些点是异常点
  2. 即便确定了异常点,但这些被确定为异常的点,真的是错误的数据吗?很有可能这看似异常的点,就是原始模型的数据,如果是这样的话,那么这些异常的点就会带有大量的原始模型的信息,剔除之后就会丢失大量的信息。

二、稳健回归

稳健回归(Robust regression),就是当最小二乘法遇到上述的,数据样本点存在异常点的时候,用于代替最小二乘法的一个算法。当然,稳健回归还可以用于异常点检测,或者是找出那些对模型影响最大的样本点。

Breakdown point

关于稳健回归,有一个名词需要做解释:Breakdown point,这个名词我并不想翻译,我也没找到一个很好的中文翻译。对于一个估计器而言,原始数据中混入了脏数据,那么,Breakdown point 指的就是在这个估计器给出错误的模型估计之前,脏数据最大的比例 α \alpha αBreakdown point 代表的是一个估计器对脏数据的最大容忍度。

举个简单的例子:有 n 个随机变量, ( X 1 , X 2 , … , X n ) (X_1,X_2,…,X_n) (X1,X2,,Xn), 其对应的数据 ( x 1 , x 2 , … , x n ) (x_1,x_2,…,x_n) (x1,x2,,xn) ,那么,我么可以求出这 n 个随机变量的均值:
X ‾ = X 1 + X 2 + … + X n n \overline{X} = \displaystyle{\frac{X_1+X_2+…+X_n}{n}} X=nX1+X2++Xn
这个均值估计器的Breakdown point 为0,因为使任意一个xi
变成足够大的脏数据之后,上面估计出来的均值,就不再正确了。

毫无疑问,Breakdown point越大,估计器就越稳健。

Breakdown point 是不可能达到 50% 的,因为如果总体样本中超过一半的数据是脏数据了,那么从统计上来说,就无法将样本中的隐藏分布和脏数据的分布给区分开来。

本文主要介绍两种稳健回归模型:RANSAC(RANdom SAmple Consensus 随机采样一致性)和Theil-Sen estimator。

RANSAC随机采样一致性算法

RANSAC算法的输入是一组观测数据(往往含有较大的噪声或无效点),它是一种重采样技术(resampling technique),通过估计模型参数所需的最小的样本点数,来得到备选模型集合,然后在不断的对集合进行扩充,其算法步骤为:

  1. 随机的选择估计模型参数所需的最少的样本点。
  2. 估计出模型的参数。
  3. 找出在误差 ϵ 内,有多少点适合当前这个模型,并将这些点标记为模型内点
  4. 如果内点的数目占总样本点的比例达到了事先设定的阈值 τ,那么基于这些内点重新估计模型的参数,并以此为最终模型, 终止程序。
  5. 否则重复执行1到4步。

RANSAC算法是从输入样本集合的内点的随机子集中学习模型。

RANSAC算法是一个非确定性算法(non-deterministic algorithm),这个算法只能得以一定的概率得到一个还不错的结果,在基本模型已定的情况下,结果的好坏程度主要取决于算法最大的迭代次数。

RANSAC算法在线性和非线性回归中都得到了广泛的应用,而其最典型也是最成功的应用,莫过于在图像处理中处理图像拼接问题,这部分在Opencv中有相关的实现。

从总体上来讲,RANSAC算法将输入样本分成了两个大的子集:内点(inliers)和外点(outliers)。其中内点的数据分布会受到噪声的影响;而外点主要来自于错误的测量手段或者是对数据错误的假设。而RANSAC算法最终的结果是基于算法所确定的内点集合得到的。

Theil-Sen Regression 泰尔森回归

Theil-Sen回归是一个参数中值估计器,它适用泛化中值,对多维数据进行估计,因此其对多维的异常点(outliers 外点)有很强的稳健性。

一般的回归模型为:

y = α + β x + ϵ y=α+βx+ϵ y=α+βx+ϵ
其中, α , β α,β α,β为模型的参数,而 ϵ ϵ ϵ 为模型的随机误差。

Theil-Sen回归则是这么处理的:

β = M e d i a n { y i − y j x i − x j : x i ≠ x j , i < j = 1 , … , n } β=Median{\displaystyle\{\frac{y_i−y_j}{x_i−x_j}}:xi≠xj,i<j=1,…,n \} β=Median{xixjyiyj:xi=xj,i<j=1,,n}
在实践中发现,随着数据特征维度的提升,Theil-Sen回归的效果不断的下降,在高维数据中,Theil-Sen回归的效果有时甚至还不如OLS(最小二乘)。

OLS方法是渐进无偏的,Theil-Sen方法在渐进无偏方面和OLS性能相似。和OLS方法不同的是,Theil-Sen方法是一种非参数方法,其对数据的潜在分布不做任何的假设。Theil-Sen方法是一种基于中值的估计其,所以其对异常点有更强的稳健性。

在单变量回归问题中,Theil-Sen方法的Breakdown point为29.3%,也就是说,Theil-Sen方法可以容忍29.3%的数据是outliers。

Huber Regression(对原文的补充)

在这里插入图片描述

Huber Regression 与 Ridge 的不同:

  • Huber Regression 对 离群点采用了线性的损失函数

Huber Regression 与 RANSAC和Theil-Sen Regression 的不同:

  • Huber Regression 给离群点设定了一个较小的损失,而不是完全忽略

在这里插入图片描述

损失函数见上图

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值