在介绍最小角回归之前,需要先看看两个预备算法:

  • 前向选择算法
  • 前向梯度算法

前向选择算法

前向选择算法的原理是一种典型的贪心算法。要解决的问题是:

        对于Y=XθY=X\theta这样的线性关系,如何求解系数θ\theta。其中YYm1m*1的向量,XXmnm*n的矩阵,θ\thetan1n*1的向量。mm为样本数量,nn为特征维度。

把矩阵XX看成nnm1m*1的向量Xi(i=1,2,...,n)X_i(i=1,2,...,n)。在这nn个向量中选择一个与目标YY的余弦距离最大的一个XkX_k,用XkX_k来逼近YY,得到下式:
Y=Xkθk\overline Y=X_k\theta_k,其中θk=<Xk,Y>Xk2\theta_k=\frac {<X_k,Y>}{||X_k||_2}

Y\overline YYYXkX_k上的投影。那么,可以定义残差:Yyes=YYY_{yes}=Y-\overline Y。由于是投影,可知YyesY_{yes}XkX_k是正交的。再以YyesY_{yes}作为新的因变量,去掉XkX_k后的剩下的自变量的集合Xi(i=1,2,...,k1,k+1,...,n)X_i(i=1,2,...,k-1,k+1,...,n)作为新的自变量集合,重复刚才投影和残差的操作,直到残差为0,或者所有的自变量都用完了,才停止算法。

机器学习系列——最小角回归

XX只有2维时,如上图所示,和YY最接近的是X1X_1,首先在X1X_1上投影,残差如上图长虚线。此时X1θ1X_1\theta_1模拟了YYθ1\theta_1模拟了θ\theta(仅仅模拟了一个维度)。接着发现最接近的是X2X_2,此时用残差接着在X2X_2投影,残差为图中短虚线。由于没有其他自变量了,此时x1θ1+x2θ2x_1\theta_1+x_2\theta_2模拟了YY,对应的模拟了两个维度的θ\theta即为最终结果。

此算法对每个变量只需执行一次操作,效率高,运算快。但,当自变量不是正交的时候,每次都在做投影,所以算法只能给出一个局部近似解。这个简单的算法太粗糙,不能直接用于Lasso回归。

前向梯度算法

前向梯度算法和前向选择算法有类似的地方,也是在nnXiX_i中选择和目标YY最为接近(余弦距离最大)的一个变量XkX_k,用XkX_k来逼近YY。但前向梯度算法不是粗暴的用投影,而是每次在最为接近的自变量XtX_t的方向移动一小步,然后再看残差YyesY_{yes}和哪个XiX_i最为接近。此时我们也不会把XtX_t去除,因为我们只前进了一小步,有可能下面最接近的自变量还是XtX_t。如此进行下去,直到残差YyesY_yes减小到足够小,算法停止。

机器学习系列——最小角回归

XX只有2维时,例子如上图,和YY最接近的是X1X_1,首先在X1X_1上面走一小段距离,此处ϵ\epsilon为一个较小的常量,发现此时的残差还是和X1X_1最接近。那么接着沿X1X_1走,一直走到发现残差不是和X1X_1最接近,而是和X2X_2最接近,此时残差如上图长虚线。接着沿着X2X_2走一小步,发现残差此时又和X1X_1最接近,那么开始沿着X1X_1走,走完一步后发现残差为0,那么算法停止。此时YY由刚才所有的所有步相加而模拟,对应的算出的系数θ\theta即为最终结果。

最小角回归算法

最小角回归对前向梯度和前向选择做了这种,保留了前向梯度算法一定程度上的精确性,同时简化了前向梯度算法一步步迭代的过程:

首先,找到与因变量YY最接近或相关度最高的自变量XkX_k,使用类似于前向梯度算法中的残差计算方法,得到新的目标YyesY_yes,此时不用和前向梯度算法一样小步小步的走,而是直接向前走直到出现一个XtX_t,使得XtX_tY(yes)Y_{(yes)}的相关度和XkX_kY(yes)Y_{(yes)}的相关度是一样的,此时残差YyesY_{yes}就在XtX_tXkX_k的角平分线上,此时我们开始沿着这个残差角平分线走,直到出现第三个特征XpX_pYyesY_yes的相关度等于θt,θk\theta_t,\theta_kYyesY_{yes}的一样。将其也加入到YY的逼近特征集合中,并用YY的逼近特征集合的共同角分线,作为新的逼近方向,循环直到YyesY_{yes}足够小或者所有变量都取完位置。

机器学习系列——最小角回归

θ\theta只有2维时。例子如上图,和YY最接近的是X1X_1,首先在X1X_1上走一段距离,直到残差在X1X_1X2X_2的角平分线上,此时沿着角平分线走,直到残差足够小才停止。此时对应的系数β\beta即为最终的结果。

最小角回归法是一个适用于高维数据的回归算法,其主要的优点有:

1)特别适合于特征维度n 远高于样本数m的情况。

2)算法的最坏计算复杂度和最小二乘法类似,但是其计算速度几乎和前向选择算法一样

3)可以产生分段线性结果的完整路径,这在模型的交叉验证中极为有用

主要的缺点是:

由于LARS的迭代方向是根据目标的残差而定,所以该算法对样本的噪声极为敏感

相关文章:

  • 2021-09-16
  • 2021-12-14
  • 2021-12-19
  • 2021-05-05
  • 2021-11-30
  • 2021-06-13
  • 2021-12-22
  • 2021-09-26
猜你喜欢
  • 2021-04-06
  • 2021-11-09
  • 2021-06-02
  • 2021-05-09
  • 2021-10-06
  • 2021-06-08
相关资源
相似解决方案