最小角迴歸(Least Angle Regression)

數學公式顯示有問題,更好的版本請點擊 最小角迴歸

背景知識

最小角迴歸和模型選擇比較像,是一個逐步的過程,每一步都選擇一個相關性最大的特徵,總的運算步數只和特徵的數目有關,和訓練集的大小無關。最小角迴歸訓練時的輸入爲特徵矩陣 X={X1,X2,...,XP},和期輸出向量Y={y1,y2,...,yN}Xi 是長度爲N的矩陣,N表示訓練集的大小,P則是特徵的數目。還有一點需要注意的是,向量Xi 和 Y 都是正則化之後的向量,即它們的元素的均值爲0,且每個向量的長度都是1,這樣做的目的是爲了後面計算相關性以及角度的方便。

相關性

相關性一般是用來衡量兩個向量之間的相關程度,通常採用相關性公式進行計算,其中A,B爲向量:

corr==Cov(A,B)Var(A)Var(B)E[(AA¯)(BB¯)]E[(AA¯)2]E[(BB¯)2]

corr的絕對值越大,表示A,B的相關性越大,反之則越小。corr的符號則表示這兩個向量是正相關還是負相關。由於最小回歸的訓練數據是經過正則化的,即A¯=B¯=0|A|=|B|=1,所以上面的計算公式可以進行簡化。

corr===E(AB)E(A2)E(B2)E(AB)11E(AB)

在最小角迴歸中,E(AB)=ABn,其中n是向量A或B中元素的個數,因而n是定值,所以爲了方便計算,在計算向量的相關性時,我們只需要計算AB即可。爲了計算每個特徵和期望輸出的相關性,我們需要計算每個Xi 與 Y的相關性,這種情況下,我們可以採用矩陣和向量的乘法來進行運算,這裏X是N×P的特徵矩陣,Y則是大小爲N的期望輸出向量。

Corr=XTY

這裏的Corr是一個大小爲P的向量,且 Corri表示特徵XiY的相關性。

參數選擇過程

在最小角迴歸中,參數選擇的準則就是相關性,每次都選擇和期望輸出相關性最大的特徵,即max(|Corri|)。不過需要注意的是,在具體計算時,期望輸出並不總是Y,而是Y與已選擇路徑的差向量。

前進路徑

在我們的特徵矩陣中,共有P個特徵向量,每個向量都是N維的,期望輸出矩陣Y也是N維的,因此我們可以將這些特徵向量以及期望輸出向量看作是N維空間中的點,而我們的目的就是在這個空間中找到一條從原點到Y的路徑。需要滿足的條件就是這條路徑可以使用特徵矩陣的線性組來合表示,而這些特徵矩陣的係數就是線性迴歸的權重向量。

u^A 表示從原點出發的一條路徑,其初始值爲0⃗ ,我們的目的是在經過若干步之後,使得u^A=Y。每一步中,u^A的增量爲 γ^uA,其中uA 爲單位向量,它指明瞭 u^A 的前進方向,γ^ 則是前進的距離。

前進方向

在最小角迴歸的計算過程中,每一步都會選擇一個和期望輸出YuA^(也可以稱作殘值),最相關的特徵Xi,可以用矩陣 XA 表示被選中的特徵的集合,XA=(...,sjXj,...)sj 表示Xj 與期望輸出相關性的符號。選擇完變量之後,就是計算前進方向。由於是最小角迴歸,所以其選擇方向的策略就是選擇等分XA中所有向量的角的方向,也就是說uAXA中所有的列向量所成的角相等,那麼只需要保證他們之間的cos值相等即可。因爲cos(A,B)=AB|A||B|,而所有的|sjXj|=1, 因此爲了保證所有的cos(sjXj,uA)都相等,只需要保證所有的(sjXj)uA 都相等即可,也就是說要保證XTAuA=AA1A,其中AA爲實數。我們知道方陣與其逆矩陣的乘積爲單位矩陣,我們可以利用這個性質來構造uA,然而我們無法保證XTA是方陣,但我們可以保證XTAXA爲方陣,因此我們可以令 uA=XA(XTAXA)1AA1A,此時XTAuA=AA1A。同時,因爲uA是單位向量,因此 |uA|=1,也就是說 uTAuA=1,由此可以得到 AA=(1TA(XTAXA)11A)0.5。至此,我們得到以下公式:

GAAAuA===XTAXA(1TAG1A1A)12XAG1AAA1A

前進距離

在確定了前進方向之後,我們就可以沿着uA的方向前進了,但應該前進多少呢?這是我們現在需要解決的問題。一直前進,直到有沒被選中的向量與(Yu^Aγ^uA) 所成角的絕對值等於選中的向量與 (Yu^Aγ^uA) 所成角的絕對值。這裏涉及到上面提到的相關性計算以及特徵的選擇,之前我們說在最小角迴歸中,每一步都會選擇一個變量,在實際操作中,我們並不是在每一步中只選擇一個變量,而是選中所有相關性的絕對值等於最大值的特徵,不過這個操作和每一步選擇一個變量的效果是一樣,後面會有解釋。在每一步中,我們具體的計算過程如下:

  • 計算特徵向量和殘值的相關性,並選擇最相關的特徵向量組成相關特徵矩陣XA
    CorrC^sjAXA=====XT(YuA^)maxj|Corrj|sign(Corrj){j:|Corrj|=C^}{sjXj:jA}
  • 計算前進方向,上面已經經過,至此,我們得到了uA
  • 計算前進距離,上面已經講過前進的終止條件,那麼在計算中如何體現呢?即存在Xj其和當前殘值所成角的絕對值等於被選中的特徵於殘值所成的角,爲了方便計算,我們可以先計算 a=XTuA,同時我們令 Ac={1,2,...,P}A
    |XTAi(Yu^Aγ^uA)|C^γ^AAγ^===|XTj(Yu^Aγ^uA)||Corrjγ^aj|min+jAcC^CorrjAAaj,C^+CorrjAA+aj
    min右上角的+號,表示取最小的正數。

爲什麼說每步選擇一個參數

在最小角迴歸的文字描述中,我們說每一步都會選擇相關性最大的特徵加入到XA中,而在實際計算時,我們卻在每一步都重新構建了XA,那這兩種方式得到的矩陣XA是否相等呢?實際上它們是相等,下面我們就可以來進行驗證。

假設在第k步中選中了m個特徵XA1,XA2,...,XAm被選中,此時我們需要驗證就是在第k+1步之後,原來被選中的特徵還需要被選中。在第k中,u^Ak沿着uAk的方向前進了γ^k距離,因此在第k+1步中,u^A(k+1)=u^Ak+γ^kuAk。由於在第k步的前進過程中,XAiYu^Akγ^uA所成角的絕對值都相等,其逐漸減小,Xj與殘值所成角的絕對值則逐漸增大,一旦XAi與殘值所成角的絕對值等於Xj與殘值所成角的絕對值,立即停止前進。因此Xj與殘值所成角的絕對值是所有未被選中的特徵中與殘值所成角的絕對值最大的特徵,所以在第k+1步中

Corr==XT(Yu^k+1)XT(Yu^kγ^kuAk)

其中絕對值最大的必然是第k步中被選中的特徵以及Xj,由此我們知道第k步選中的特徵在第k+1步中仍然會被選中,因而這兩個方式構建的XA是等價的,且有如下關係

C^k+1=C^kγ^kAAk
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章