線性回歸模型比較常見的特征選擇方法有兩種,分別是最優子集和逐步回歸。此外還有正則化,降維等方法。
1,最優子集(Best Subset Selection):從零號模型(null model)M0開始,這個模型只有截距項而沒有任何自變量。然后用不同的特征組合進行擬合,從中分別挑選出一個最好的模型(RSS最小或R2最大),也就是包含1個特征的模型M1,包含2個特征的模型M2,直至包含p個特征的模型Mp。然后從這總共p+1個模型中選出其中最好的模型(根據交叉驗證誤差,Cp,BIC或adjusted R2)(注:為什么不能用RSS或R2來衡量?因為增加任何特征,模型的訓練RSS只會變小,R2只會增大)。這個最好模型所配置的特征就是篩選出的特征。
優點:因為遍歷了所有可能的特征組合,因此篩選出的特征必定是最優的。
缺點:總共要擬合2p個模型,計算量非常大。
2,逐步回歸(Stepwise Selection)
從計算的角度來講,最優子集法只適用於最多30~40個特征,從統計學的角度來看,如果特征很多,最優子集法很容易產生過擬合的問題(一般來說,當p<10時可以用最優子集法)。因此在特征較多的情況下,適用逐步回歸法來進行特征選擇。
a. 前進法(Forward Selection):從零號模型(null model)M0開始,這個模型只有截距項而沒有任何自變量。然后一個個地加入p個特征,保留RSS最小或R2最大的那個特征,此時這個模型記為M1。然后再在這個模型的基礎上一個個地加入剩余的p-1個特征,仍然保留RSS最小或R2最大的那個特征(模型M2)。這樣重復操作,直至包含p個特征的模型Mp。然后從這總共p+1個模型中選出其中最好的模型(根據交叉驗證誤差,Cp,BIC或adjusted R2)。這個最好模型所配置的特征就是篩選出的特征。
(注:計算量大約是p2)
b. 后退法(Backward Selection): 從包含全部p個特征的模型Mp開始,然后一個個地移除p個特征,保留RSS最小或R2最大的那個模型,現在是包含p-1個特征的模型,稱為模型Mp-1,繼續移除剩余的p-1個特征。這樣重復操作,直至包含0個特征的模型M0。然后從這總共p+1個模型中選出其中最好的模型(根據交叉驗證誤差,Cp,BIC或adjusted R2)。這個最好模型所配置的特征就是篩選出的特征。
(注:計算量大約是p2)
(注:后退法不能用於p>n的情況)
c. 混合法(Mixed Selection):從零號模型(null model)M0開始,這個模型只有截距項而沒有任何自變量。和前進法一樣加入特征,區別在於當某個特征的p值大於某個閾值時,移除該特征。重復這樣的操作,直至模型中所有的特征都有足夠低的p值,並且如果其余的特征加入其中會有超過某個閾值的p值。
前進法和后退法都屬於貪心算法,能夠局部達到最優,但是從全局來看不一定是最優的。前進法雖然每一次都能選取最顯著的一個自變量,但在實際情況下,很可能有的自變量在開始時是顯著的,但是在其余自變量添加進去之后,它就變得不顯著了,而前進法卻沒有提供“剔除”該變量的選項。而后退法則很有可能會遺漏一些很重要的變量,雖然剛開始它可能並不顯著。但是混合法會選入本身對模型目標沒有多少貢獻的特征,容易導致過擬合。這幾種方法在特征有共線性問題的時候會出問題。因此,我還是傾向於自己手動進行選擇,而不是完全依靠機器選擇。