引用:http://www.cnblogs.com/pinard/p/6018889.html
最近在学习机器学习的相关框架,看到最小角回归理解了一下:
在介绍最小角回归算法前,我们需要了解两个相关算法,一个是前向选择算法(Foward Selection),一个是前向梯度算法(Forward Statgewise)。
1.前向选择算法(Foward Selection)
假设有Y=Xθ,X为m*n的矩阵,Y为m*1的矩阵,我们要找到一个θ,最大程度的拟合输入和输出。
这里把X看成n个m*1的的向量Xi。
第一步:选择和目标Y最为接近的Xi(余弦相似度),记为Xk。
过Y向Xk向量做投影,投影的长度便作为Xk对应的系数,记为θk。
第二步:定义(残差)Y‘=Y-Xk*θK
若Y‘把所有的自变量都投影完毕,或者Y'为0,结束算法。
否则投影后的Y‘被设为新的目标Y,重复第一步。
图示引荐如下:
上图为Y在X1,X2上的分解,对应的θ即为要求解的系数。
2.前向梯度算法(Forward Stagewise)
同前向选择方法不同的一点是,θk的取值是人为设定的,每次θk会有一个初始值设为w,
计算残差Y‘=Y-Xk*w,再根据Y’去找相似度最大的向量Xi。
引图如下:
如上图Y沿着x1方向,行走εx1时,就会停下来计算残差,再判断究竟与x1的相似度还是与x2的相似度大,然后继续走下去。
3.最小角回归(Least Angle Regression, LARS)算法
首先,还是找到与因变量Y最接近或者相关度最高的自变量Xk,使用类似于前向梯度算法中的残差计算方法,得到新的目标Y',此时不用和前向梯度算法一样小步小步的走。而是直接向前走直到出现一个Xt,使得Xt和Y'的相关度和Xk与Yyes的相关度是一样的,此时残差Y'就在Xt和Xk的角平分线方向上,此时我们开始沿着这个残差角平分线走,直到出现第三个特征Xp和Yyes的相关度足够大的时候,即Xp到当前残差Yyes的相关度和θt,θk与Yyes的一样。将其也叫入到Y的逼近特征集合中,并用Y的逼近特征集合的共同角分线,作为新的逼近方向。以此循环,直到Yyes足够的小,或者说所有的变量都已经取完了,算法停止。此时对应的系数θ即为最终结果。
引图如下:
2017-09-16