预测数值型数据:回归(二)

来源:互联网 发布:手机网络被劫持 论坛 编辑:程序博客网 时间:2024/05/22 14:54

  上次我们留了个两个问题没有仔细说明,一个是局部加权线性回归,另一个是岭回归。今天依次对这两种算法进行说明。

一、局部加权线性回归

  欠拟合这种问题是仅仅凭借一条直线来对数据点进行拟合的线性回归算法所无法避免的,而解决这种欠拟合问题的方法中,有一种最为简便,称之为局部加权线性回归。顾名思义,局部加权线性回归就是指给被预测点周围的数据点赋以不同的权重,让预测更加注重局部上的趋势而不是整体上的趋势,这样的操作一旦不注意就会造成过拟合,所以应用的时候要特别注意。
  该算法对应的回归系数矩阵计算方法如下:
  
                θ=(XTWX)1XTWy

  其中W为权重矩阵,它是一个mm的对角矩阵,训练集中的样本xi所对应的权重存储在W(i,i)中。 为nm的矩阵, XTW仍旧为nm的矩阵,不同之处在于每个样本都被赋予了不同的权重。
  权重的计算方式有很多种,其主要目标就是赋予待遇测点周围的数据点相对更高的权重,一般采用高斯核函数来实现这个目标,高斯核函数的形式如下:
  
                W(i,i)=exp(|xix|2k2)

 这里写图片描述
  
  我们可以注意到,k的取值越小,权重衰减的越快,仅仅在要预测的点附近很有限的数据点才可以对回归系数的学习起到作用,其他的数据点权重为0无法参与到回归系数的学习过程当中。
  
  这种方法有助于避免简单线性回归所带来的欠拟合的问题,然而它可能会带来过拟合的问题,如下图所示:
        这里写图片描述
  
  从上图可以看出,中间的那张明显比剩下的两张更加合理一些,基本模拟出了数据的趋势,而图三就是k值太小,出现了过拟合的情况,反而无法看出数据的规律。
  除了容易出现过拟合的问题外,局部加权线性回归的计算量也相当大,因为它对每个待遇测点做预测时都必须遍历整个数据集才能得出回归系数向量,使用时要加以注意。

二、岭回归

  使用线性回归的一个前提是矩阵XTX为满秩,这是因为若XTX 奇异则无法求逆,式θ=(XTX)1XTy 无解。那么什么情况下矩阵XTX会出现无法求逆或者很难求逆的情况呢?当所有变量之间有较强的线性相关性时,或者变量之间的数据变化比较小或者部分变量之间有线性相关性时,矩阵XTX的行列式比较小,甚至趋近于0,这时矩阵XTX很难求逆,简单的线性回归方法无法适应这种情况。
  在这种情况下,我们引入岭回归,回归系数的计算公式变为:
               θ=(XTX+λI)1XTy
  岭回归算法通过引入λI来使得矩阵非奇异,可以求逆。岭回归中的“岭”就是指单位阵I的对角线像一条山岭一样。不过这种表达还是不够直观,我们从原始的目标函数来看,岭回归的目标函数如下所示:
  

minwi=0n(yixTiθ)2+λ||θ||2

  可以看到,岭回归是在简单线性回归的目标函数后面加了一个二范数惩罚项,其目的在于限制回归系数矩阵的取值,减少不必要的参数。显然,对于不同的λ,回归系数向量θ会有不同的取值,反映θλ变化的图像称为岭迹图,如下所示:
这里写图片描述
  可以看到当λ取值很小时,回归系数矩阵并没有什么变化,随着λ取值的逐渐增大,回归系数矩阵逐渐归于0。另外我们还可以根据岭迹图看出哪一个特征对最后的预测贡献最大(数据要归一化)。比如在上图中最上面的一条线,回归系数最大,对最后预测的贡献也就是最大。
简而言之,岭回归用于处理自变量之间高度相关的情形。线性回归的计算用的是最小二乘估计法,当自变量之间高度相关时,最小二乘回归估计的参数估计值会不稳定,这时如果在公式里加点东西,让它变得稳定,那就解决了这一问题了。岭回归就是这个思想。

1 0
原创粉丝点击