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