https://www.cnblogs.com/mystudyblog/p/7532850.html
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,重复第一步。
图示引荐如下:

2.前向梯度算法(Forward Stagewise)
同前向选择方法不同的一点是,θk的取值是人为设定的,每次θk会有一个初始值设为w,
计算残差Y‘=Y-Xk*w,再根据Y’去找相似度最大的向量Xi。
引图如下:

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足够的小,或者说所有的变量都已经取完了,算法停止。此时对应的系数θ即为最终结果。
引图如下:

网友评论