LARS 最小角回归算法简介
最近開始看Elements of Statistical Learning, 今天的內容是線性模型(第三章。。這本書東西非常多,不知道何年何月才能讀完了),主要是在看變量選擇。感覺變量選擇這一塊領域非常有意思,而大三那門回歸分析只是學了一些皮毛而已。過兩天有空,記一些ESL這本書里講的各種變量選擇方法在這里。
先講一下今天看到的新方法,所謂的LARS(Least Angle Regression)。
LARS是大神Efron他們搞出來做變量選擇的一套算法,有點像Forward Stepwise(向前逐步回歸),但和Forward Stepwise不同點在于,Forward Stepwise每次都是根據選擇的變量子集,完全擬合出線性模型,計算出RSS,再設計統計量(如AIC)對較高的模型復雜度作出懲罰,而LARS是每次先找出和因變量相關度最高的那個變量, 再沿著LSE的方向一點點調整這個predictor的系數,在這個過程中,這個變量和殘差的相關系數會逐漸減小,等到這個相關性沒那么顯著的時候,就要選進新的相關性最高的變量,然后重新沿著LSE的方向進行變動。而到最后,所有變量都被選中,估計就和LSE相同了。
LARS的算法實際執行步驟如下:
? ? ? 1. 對Predictors進行標準化(去除不同尺度的影響),對Target Variable進行中心化(去除截距項的影響),初始的所有系數都設為0,此時殘差 r 就等于中心化后的Target Variable
? ? ? 2. 找出和殘差r相關度最高的變量X_j
? ? ? 3. 將X_j的系數Beta_j 從0開始沿著LSE(只有一個變量X_j的最小二乘估計)的方向變化,直到某個新的變量X_k與殘差r的相關性大于X_j時
? ? ? 4. X_j和X_k的系數Beta_j和Beta_k,一起沿著新的LSE(加入了新變量X_k的最小二乘估計)的方向移動,直到有新的變量被選入
? ? ? 5. 重復2,3,4,直到所有變量被選入,最后得到的估計就是普通線性回歸的OLS
從上面這個算法可以看出,LARS這個東西明顯和OLS, Ridge Regression等給出了Closed-form solutions的模型不同,而是給出了一套對計算機來說非常友好的算法。這也說明了隨著計算機能力的強大,現代統計基本上越來越靠近算法,而和模型無關。
這個算法看完以后,我就試圖用R實現這套算法,最后還沒有美化過的效果圖如下,左邊是后來找到的Efron他們寫的lars包做出來的效果,乍看之下還是很像,但是我發現有一些地方貌似有出入(我的程序似乎有一些變量過早地被選入了。。),目前還不知道哪里出了錯,回頭仔細看看。至于代碼神馬的,由于寫的太亂了,過兩天寫的好看一點再發上來.
?
參考文獻:
http://blog.sina.com.cn/s/blog_61f1db170101ca8i.html
LARS 算法簡介:https://cosx.org/2011/04/an-introduction-to-lars
熱門數據挖掘模型應用入門(一): LASSO 回歸,https://cosx.org/2016/10/data-mining-1-lasso/
轉載于:https://www.cnblogs.com/zhedingbingqin/p/10091342.html
總結
以上是生活随笔為你收集整理的LARS 最小角回归算法简介的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一个 bug ,罚款 200,我真待过这
- 下一篇: VGA显示正圆