為什麼 glmnet 使用 Zou & Hastie 原論文中的“樸素”彈性網?
最初的彈性網絡論文Zou & Hastie (2005) Regularization and variable selection via the elastic net引入了用於線性回歸的彈性網絡損失函數(這裡我假設所有變量都居中並縮放到單位方差):
但稱其為“幼稚彈性網”。他們認為它執行雙重收縮(套索和脊),傾向於過度收縮,並且可以通過重新縮放得到的解決方案來改進,如下所示:他們給出了一些理論論據和實驗證據,表明這會帶來更好的性能。 然而,隨後的
glmnet
論文Friedman, Hastie, & Tibshirani (2010) Regularization paths for generalized linear models via coordinate descent沒有使用這種重新縮放,只有一個簡短的腳註說Zou 和 Hastie (2005) 將這種懲罰稱為樸素彈性網絡,並更喜歡他們稱之為彈性網絡的重新縮放版本。我們在這裡放棄這種區別。
那裡沒有給出進一步的解釋(或在任何 Hastie 等人的教科書中)。我覺得有點令人費解。作者是否因為他們認為它過於臨時而放棄了重新調整?因為它在進一步的實驗中表現更差?因為不清楚如何將其推廣到 GLM 案例?我不知道。但無論如何,
glmnet
從那以後這個包變得非常流行,所以我的印像是,現在沒有人使用 Zou & Hastie 的重新縮放,而且大多數人可能甚至不知道這種可能性。問題:畢竟,重新調整規模是個好主意還是壞主意?
通過
glmnet
參數化,Zou & Hastie 重新縮放應該是
我將這個問題通過電子郵件發送給 Zou 和 Hastie,得到了 Hastie 的以下回复(我希望他不會介意我在這裡引用它):
我認為在 Zou 等人中,我們擔心額外的偏差,但當然重新調整會增加方差。所以它只是沿著偏差-方差權衡曲線移動一個。我們很快將包括一個放鬆套索版本,這是一種更好的重新縮放形式。
我將這些話解釋為對香草彈性網絡解決方案某種形式的“重新調整”的認可,但 Hastie 似乎不再支持 Zou & Hastie 2005 提出的特定方法。
在下文中,我將簡要回顧和比較幾個重新縮放選項。
我將使用
glmnet
損失的參數化L=12n‖y−β0−Xβ‖2+λ(α‖β‖1+(1−α)‖β‖22/2),解決方案表示為 ˆβ .
- Zou & Hastie 的方法是使用ˆβrescaled=(1+λ(1−α))ˆβ.
請注意,這會在純脊時產生一些重要的重新縮放 α=0 這可以說沒有多大意義。另一方面,這不會產生純套索的重新縮放,當 α=1 ,儘管文獻中有各種聲稱套索估計器可以從一些重新縮放中受益(見下文)。- 對於純 lasso,Tibshirani 建議使用 lasso-OLS 混合,即使用 lasso 選擇的預測變量子集使用 OLS 估計器。這使估計器保持一致(但會消除收縮,這會增加預期誤差)。可以對彈性網使用相同的方法ˆβelastic-OLS-hybrid=OLS(Xi∣ˆβi≠0)
但潛在的問題是彈性網可以選擇超過 n 預測器和 OLS 會崩潰(相比之下,純 lasso 永遠不會選擇超過 n 預測器)。- 上面引用的 Hastie 的電子郵件中提到的鬆弛套索是建議在第一個套索選擇的預測變量子集上運行另一個套索。這個想法是使用兩種不同的懲罰並通過交叉驗證來選擇兩者。可以將相同的想法應用於彈性網絡,但這似乎需要四個不同的正則化參數,調整它們是一場噩夢。
我建議一個更簡單的鬆弛彈性網方案:獲得後 ˆβ ,執行嶺回歸 α=0 和相同的 λ 在選定的預測變量子集上:ˆβrelaxed-elastic-net=Ridge(Xi∣ˆβi≠0).
這 (a) 不需要任何額外的正則化參數,(b) 適用於任意數量的選定預測器,並且 (c) 如果從純嶺開始,則不做任何事情。聽起來不錯。我目前正在與一個小 n≪p 數據集 n=44 和 p=3000 , 在哪裡 y 由少數領先的 PC 很好地預測 X . 我將使用 100 倍重複 11 倍交叉驗證來比較上述估計器的性能。作為一個性能指標,我使用了測試誤差,歸一化以產生類似 R 平方的結果:R2test=1−‖ytest−ˆβ0−Xtestˆβ‖2‖ytest−ˆβ0‖2.
在下圖中,虛線對應於 vanilla elastic net estimator ˆβ 三個子圖對應於三種重新縮放方法:因此,至少在這些數據中,所有三種方法都優於普通彈性網絡估計器,而“鬆弛彈性網絡”表現最好。