小編給大家分享一下R語言如何實現LASSO回歸,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
讓客戶滿意是我們工作的目標,不斷超越客戶的期望值來自于我們對這個行業的熱愛。我們立志把好的技術通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領域值得信任、有價值的長期合作伙伴,公司提供的服務項目有:域名注冊、虛擬主機、營銷軟件、網站建設、瓦房店網站維護、網站推廣。Lasso回歸又稱為套索回歸,是Robert Tibshirani于1996年提出的一種新的變量選擇技術。Lasso是一種收縮估計方法,其基本思想是在回歸系數的絕對值之和小于一個常數的約束條件下,使殘差平方和最小化,從而能夠產生某些嚴格等于0的回歸系數,進一步得到可以解釋的模型。R語言中有多個包可以實現Lasso回歸,這里使用lars包實現。
x = as.matrix(data5[, 2:7]) #data5為自己的數據集 y = as.matrix(data5[, 1]) lar1 <-lars(x,y,type = "lasso") lar1 #查看得到的結果
從圖1可以看出通過lasso回歸得到的R^2為0.426,較低。標紅的部分是在進行lasso回歸時,自變量被選入的順序。下面用圖表的形式顯示。
plot(lar1)
可以看到圖2中的豎線對應于lasso中迭代的次數,對應的系數值不為0的自變量即為選入的,豎線的標號與圖1中的step相對應。
對于選取最小cp值對應的模型可以通過兩種方式實現:
(1)顯示所有cp值,從中挑選最小的
summary(lar1) #輸出lasso對象的細節,包括Df、RSS和Cp,其中Cp是MallowsCp統計量,通常選取Cp最小的那個模型
圖3顯示了lasso回歸中所有的cp值,選擇最小的,即上圖標紅的部分,對應的df=3,最前面一列對應迭代次數(即步數),step=2 。
(2)直接選取最小的cp值
lar1$Cp[which.min(lar$Cp)] #選擇最小Cp,結果如下:
與圖3中標紅的部分結果一樣,但是要注意,2表示的是step大小。
(1)獲取所有迭代系數,根據step大小選擇cp值最小對應的自變量系數值
lar1$beta #可以得到每一步對應的自變量對應的系數
圖4標紅的部分就是step=2對應的cp值最小時對應的模型的自變量的系數
(2)獲取指定迭代次數(即步數)對應的自變量的系數,可以通過下面的代碼實現:
coef <-coef.lars(lar,mode="step",s=3) #s為step+1,也比圖2中豎線為2的迭代次數對應,與圖3中df值相等;s取值范圍1-7. coef[coef!=0] #獲取系數值不為零的自變量對應的系數值
與圖4中標紅部分一樣。
通過第4部分可以獲取cp值最小時對應的自變量的系數,但是沒有辦法獲取對應模型的截距值,下面的代碼可以獲取對應模型的截距值。
上面的代碼就是求取cp值最小時對應的模型的截距值,結果如下:
以上是“R語言如何實現LASSO回歸”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注創新互聯行業資訊頻道!
文章名稱:R語言如何實現LASSO回歸-創新互聯
標題URL:http://vcdvsql.cn/article24/csipje.html
成都網站建設公司_創新互聯,為您提供服務器托管、移動網站建設、App設計、Google、網站排名、企業建站
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯