引用: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