L1正則化的Lasso回歸可以用來特徵選擇,L2正則化(嶺回歸)通常用來防止過擬合,那它也可以用來做特徵選擇嗎?
不曾聽聞。--原答案
我看了所謂「已認證的官方賬號」的回答, @論智 。雖然您的回答似乎有零有整,姑且不說您是否是copy paste的,這樣具有誤導性的回答確實讓人匪夷所思。
我們先看一下他所說的alpha是個什麼東西。
我們知道Ridge regression 裏的objective function是有一個penalty的term,以防止overfitting,這個term是L2的。
objective function: SSE + alpha*||beta||^2
這個alpha是用來控制penalty的強度,正常來說是通過一些techniques,for example, cross-validation,通過Linear probing 去找到一個alpha值,使得這個Ridge regression能夠generalize,有效降低prediction error。
用alpha去做feature selection簡直是荒謬!它只是一個regularization的手段,防止overfitting,並非是用來做feature selection。你人為地去操作alpha的值,以達到你所謂的feature selection的目的,而忽略了模型的整體性,簡直是荒謬至極。
我們來說為什麼Lasso能做feature selection,而Ridge不能:
Feature selection的過程是remove的過程,LASSO 能將解釋力弱、比較noisy的變數剔除,而Ridge是將這些變數在模型中所表現出來的重要性大大降低,但並不能剔除。嚴格意義上來講,剔除纔是Feature selection,通常是在modeling之前,LASSO因為其特性,可以作為一種手段。
當然,Modeling的過程是一個講故事的過程,如果你用Ridge的結果去剔除某些變數再重新modeling,在符合common sense並且有較好的結果的情況下,去闡述一個完整的故事,做modeling的document的時候去這麼說,也無可厚非,雖然從理論上來說,這種故事缺乏強而有力的backup。
摘自ESLII Stanford U&
Ridge Lasso 其實是一個optimize的過程:
Ridge -
objective function: Arg(min) SSE subject to ||Beta||^2 &< M
Lasso -
objective function:Arg(min) SSE subject to sum(|Beta|) &
那麼他們分別的條件在空間中,以二維為例,一個是四條線圍成的形狀,另一個是curve的圓。
SSE是一個Squared的形式:
sum(y - betaX)^2 = sum(beta^2(*) - 2beta(*) +(*)) (*)為省略的內容。
那麼SSE 在空間中是橢圓,我們在高三就學過的優化過程,就能大致站展開了。就如同上圖中的最下邊兩個圖。
&
你簡單地設一個X, Let us say, it is a diag(n) with diag value = 1。 用gradient的方法去求beta。就能得到表中的式子。
這裡我們又能抨擊一下 @論智 在不負責任的回答中關於sigma的用法。
beta/(1 + sigma) 是一個特例,但也不乏說明性。
不管你的sigma有多大,你都不可能在Ridge中將一個parameter shrink to 0。
咱們也用他添加引用的方法,強調一下。
Feature selection 是一個精密的過程,並不是胡來的過程。我們有方法、有理論地去選變數,這纔是modeling正確的步驟。正確的理論,結果不好,只能說是方法不合適;錯誤的理論,往往讓你的模型站不住腳。
請您 @論智 選擇刪除您的回答,或者是做出改正。
正則化用來防止過擬合的主要直覺就是避免模型過於複雜,或者說,降低模型的複雜度。而特徵選擇也是為了降低模型的複雜度。
在L1正則化(Lasso回歸) 中(J為原目標函數或損失函數, 為模型係數),通過調整 (比如通過交叉驗證),可以使(在Lasso回歸模型看來)不重要的特徵係數為零,換句話說,也就是移除了這些特徵。
圖片來源:Dataminer(CrossValidated)
依次類推,L2正則化(Ridge regression,嶺回歸)不也可以用來做特徵選擇嗎?但是我們遇到了一個問題,無論把改到多大,L2都無法使特徵係數為零(隨著的增大,特徵係數會變得越來越小,不重要的特徵係數會更快接近零,但永遠到不了零)。
不過,這不是什麼大問題。我們可以設定一個閾值,係數低於這個閾值的,就移除相應特徵。
相比L1,用L2正則化做特徵選取,最大的劣勢是難以應對相關特徵(correlated features)。在正則化的時候,如果有大量相關特徵,一般而言,L1的效果要比L2好。
關於這一點,可以考慮一個簡化的極端情形,假設有兩個可以相互替換的相關特徵 和 ,那麼線性模型 和 是等價的。在L1看來,這兩個模型的penalty(複雜度)是一樣的( ),而L2由於取平方的關係,兩個模型的penalty大不相同( )。
那麼,在特徵選取的時候,在L1看來,模型 和 的複雜度差不多,前者兩個係數都沒到零,都不移除,後者會移除 ,但留下 ,最終效果是一樣的。L2更喜歡 (penalty才2),所以會更大力度地懲罰 (penalty高達4)。換句話說,L2可能最終留下的模型是。然後如果我們設定的閾值是大於1才保留,那很不幸, 和 就會被L2全部移除。
總的來說,L2(設定閾值的情況下)可以用來做特徵選擇。但因為在應對相關特徵方面效果不如L1,而且也比L1稍微複雜一點(需要算平方,還要考慮閾值的選取),所以在特徵選取方面不像L1一樣得到了廣泛應用。
範劍青在2001年的著名文章中指出,只有凹的懲罰函數具有模型選擇能力。LASSO是凹凸臨界點也是可以的。
個人覺得看你怎麼用了。其實理論上L2並不是用於特徵篩選的演算法,L1看上去更合適。但是L1想一次做到合適程度的特徵篩選,對懲罰項的調餐要做得比較好。而L2其實只要加一個大一些的懲罰項,就可以得到每個特徵權重,從大到小也可以排序做特徵的初篩。其實特徵篩選的方法很多,其實要機遇模型的話,隨機森林或者xgboost也是不錯的選擇。
不行,L2有平滑效果,會把大的壓小噢,不像L1,傾向於把小的變0從而做特徵選擇
推薦閱讀:
TAG:回歸分析 | 線性回歸 | 回歸 | 特徵選擇 |