上次我们留了个两个问题没有仔细说明,一个是局部加权线性回归,另一个是岭回归。今天依次对这两种算法进行说明。
一、局部加权线性回归
欠拟合这种问题是仅仅凭借一条直线来对数据点进行拟合的线性回归算法所无法避免的,而解决这种欠拟合问题的方法中,有一种最为简便,称之为局部加权线性回归。顾名思义,局部加权线性回归就是指给被预测点周围的数据点赋以不同的权重,让预测更加注重局部上的趋势而不是整体上的趋势,这样的操作一旦不注意就会造成过拟合,所以应用的时候要特别注意。
该算法对应的回归系数矩阵计算方法如下:
θ=(XTWX)−1XTWy
其中
W
为权重矩阵,它是一个
权重的计算方式有很多种,其主要目标就是赋予待遇测点周围的数据点相对更高的权重,一般采用高斯核函数来实现这个目标,高斯核函数的形式如下:
W(i,i)=exp(|xi−x|−2k2)
我们可以注意到,
k
的取值越小,权重衰减的越快,仅仅在要预测的点附近很有限的数据点才可以对回归系数的学习起到作用,其他的数据点权重为0无法参与到回归系数的学习过程当中。
这种方法有助于避免简单线性回归所带来的欠拟合的问题,然而它可能会带来过拟合的问题,如下图所示:
从上图可以看出,中间的那张明显比剩下的两张更加合理一些,基本模拟出了数据的趋势,而图三就是
除了容易出现过拟合的问题外,局部加权线性回归的计算量也相当大,因为它对每个待遇测点做预测时都必须遍历整个数据集才能得出回归系数向量,使用时要加以注意。
二、岭回归
使用线性回归的一个前提是矩阵
XTX
为满秩,这是因为若
XTX
奇异则无法求逆,式
θ=(XTX)−1XTy
无解。那么什么情况下矩阵
XTX
会出现无法求逆或者很难求逆的情况呢?当所有变量之间有较强的线性相关性时,或者变量之间的数据变化比较小或者部分变量之间有线性相关性时,矩阵
XTX
的行列式比较小,甚至趋近于0,这时矩阵
XTX
很难求逆,简单的线性回归方法无法适应这种情况。
在这种情况下,我们引入岭回归,回归系数的计算公式变为:
θ=(XTX+λI)−1XTy
岭回归算法通过引入
λI
来使得矩阵非奇异,可以求逆。岭回归中的“岭”就是指单位阵
I
的对角线像一条山岭一样。不过这种表达还是不够直观,我们从原始的目标函数来看,岭回归的目标函数如下所示:
可以看到,岭回归是在简单线性回归的目标函数后面加了一个二范数惩罚项,其目的在于限制回归系数矩阵的取值,减少不必要的参数。显然,对于不同的
λ
,回归系数向量
θ
会有不同的取值,反映
θ
随
λ
变化的图像称为岭迹图,如下所示:
可以看到当
λ
取值很小时,回归系数矩阵并没有什么变化,随着
λ
取值的逐渐增大,回归系数矩阵逐渐归于0。另外我们还可以根据岭迹图看出哪一个特征对最后的预测贡献最大(数据要归一化)。比如在上图中最上面的一条线,回归系数最大,对最后预测的贡献也就是最大。
简而言之,岭回归用于处理自变量之间高度相关的情形。线性回归的计算用的是最小二乘估计法,当自变量之间高度相关时,最小二乘回归估计的参数估计值会不稳定,这时如果在公式里加点东西,让它变得稳定,那就解决了这一问题了。岭回归就是这个思想。