在介紹最小角迴歸算法前,我們需要了解兩個相關算法,一個是前向選擇算法(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足夠的小,或者說所有的變量都已經取完了,算法停止。此時對應的係數θ即爲最終結果。
引圖如下: