溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

R語言如何實現(xiàn)LASSO回歸

發(fā)布時間:2021-03-12 14:04:53 來源:億速云 閱讀:343 作者:小新 欄目:開發(fā)技術(shù)

小編給大家分享一下R語言如何實現(xiàn)LASSO回歸,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

Lasso回歸又稱為套索回歸,是Robert Tibshirani于1996年提出的一種新的變量選擇技術(shù)。Lasso是一種收縮估計方法,其基本思想是在回歸系數(shù)的絕對值之和小于一個常數(shù)的約束條件下,使殘差平方和最小化,從而能夠產(chǎn)生某些嚴(yán)格等于0的回歸系數(shù),進一步得到可以解釋的模型。R語言中有多個包可以實現(xiàn)Lasso回歸,這里使用lars包實現(xiàn)。

1.利用lars函數(shù)實現(xiàn)lasso回歸并可視化顯示

x = as.matrix(data5[, 2:7]) #data5為自己的數(shù)據(jù)集
y = as.matrix(data5[, 1])
lar1 <-lars(x,y,type = "lasso")
lar1 #查看得到的結(jié)果

R語言如何實現(xiàn)LASSO回歸

從圖1可以看出通過lasso回歸得到的R^2為0.426,較低。標(biāo)紅的部分是在進行l(wèi)asso回歸時,自變量被選入的順序。下面用圖表的形式顯示。

plot(lar1)

R語言如何實現(xiàn)LASSO回歸

可以看到圖2中的豎線對應(yīng)于lasso中迭代的次數(shù),對應(yīng)的系數(shù)值不為0的自變量即為選入的,豎線的標(biāo)號與圖1中的step相對應(yīng)。

2.選取cp值最小時對應(yīng)的模型,獲取模型對應(yīng)系數(shù)

對于選取最小cp值對應(yīng)的模型可以通過兩種方式實現(xiàn):
(1)顯示所有cp值,從中挑選最小的

summary(lar1) #輸出lasso對象的細(xì)節(jié),包括Df、RSS和Cp,其中Cp是MallowsCp統(tǒng)計量,通常選取Cp最小的那個模型

R語言如何實現(xiàn)LASSO回歸

圖3顯示了lasso回歸中所有的cp值,選擇最小的,即上圖標(biāo)紅的部分,對應(yīng)的df=3,最前面一列對應(yīng)迭代次數(shù)(即步數(shù)),step=2 。

(2)直接選取最小的cp值

lar1$Cp[which.min(lar$Cp)] #選擇最小Cp,結(jié)果如下:

R語言如何實現(xiàn)LASSO回歸

與圖3中標(biāo)紅的部分結(jié)果一樣,但是要注意,2表示的是step大小。

3.選取cp值最小時對應(yīng)的模型系數(shù)

(1)獲取所有迭代系數(shù),根據(jù)step大小選擇cp值最小對應(yīng)的自變量系數(shù)值

lar1$beta #可以得到每一步對應(yīng)的自變量對應(yīng)的系數(shù)

R語言如何實現(xiàn)LASSO回歸

圖4標(biāo)紅的部分就是step=2對應(yīng)的cp值最小時對應(yīng)的模型的自變量的系數(shù)

(2)獲取指定迭代次數(shù)(即步數(shù))對應(yīng)的自變量的系數(shù),可以通過下面的代碼實現(xiàn):

coef <-coef.lars(lar,mode="step",s=3) #s為step+1,也比圖2中豎線為2的迭代次數(shù)對應(yīng),與圖3中df值相等;s取值范圍1-7.
coef[coef!=0] #獲取系數(shù)值不為零的自變量對應(yīng)的系數(shù)值

R語言如何實現(xiàn)LASSO回歸

與圖4中標(biāo)紅部分一樣。

4.獲取截距的系數(shù)

通過第4部分可以獲取cp值最小時對應(yīng)的自變量的系數(shù),但是沒有辦法獲取對應(yīng)模型的截距值,下面的代碼可以獲取對應(yīng)模型的截距值。

上面的代碼就是求取cp值最小時對應(yīng)的模型的截距值,結(jié)果如下:

R語言如何實現(xiàn)LASSO回歸

以上是“R語言如何實現(xiàn)LASSO回歸”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI