正則化線性模型+嶺迴歸+lasso迴歸+彈性網絡+糖尿病數據案例分析

1、嶺迴歸+lasso迴歸+彈性網絡

嶺迴歸的由來以及效果在上一篇博客中已經介紹過了,這裏用另一種方法介紹:
在原損失函數中添加懲罰項,控制擬合參數的大小,即添加正則項。使正則項和原最小二乘法之和達到最小時,求得的參數爲最後解。
在這裏插入圖片描述
lasso添加的正則項稍有不同,彈性網絡則結合了lasso和嶺迴歸。
在這裏插入圖片描述j

嶺迴歸:

在這裏插入圖片描述

lasso:

在這裏插入圖片描述

彈性網絡:

在這裏插入圖片描述

小結:

嶺迴歸比較常用,當自變量較多時,而有用的變量可能較少時,lasso和彈性網絡更常用。其中彈性網絡應用更爲廣泛,很多時候效果更好。

糖尿病數據案例分析

這裏僅僅展現lasso部分:

library("lars")
data= data.frame(data(diabetes))
diabetes
lar1 = lars(diabetes$x2,as.matrix(diabetes$y))
summary(lar1)
plot(lar1)
lar1$Cp
min(lar1$Cp)
which.min(lar1$Cp)

cv1= cv.lars(diabetes$x2,as.matrix(diabetes$y),K=10)
cv1$index
cv1$cv
cv1$mode#lasso方法

index1 = cv1$index[which.min(cv1$cv)]
coef = coef.lars(lar1,mode="fraction",s=index1)
coef[coef!=0]

coef1 = coef.lars(lar1,mode="step",s=15)
coef1[coef1!=0]

library("msgps")
w=read.csv("diabetes.csv")[,11:75]
y=w[,1];x2=as.matrix(w[,-1])
al=msgps(x2,y,penalty="alasso",gamma=1,lambda=0)
summary(al);plot(al)

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章