如何解决使用套索回归的交叉验证找到最佳调整参数λ
通过交叉验证,我想找到用于预测变量“收入”的LASSO回归的最佳调整参数lambda和相应的系数。
我对所有这些都很陌生,并对步骤的顺序(以及其他所有内容)感到非常困惑。
到目前为止,我的代码:
library(glmnet)
set.seed(1)
grid <- 10^seq(10,-2,length.out=100)
x <- model.matrix(income~.,data)
y <- data$income
train <- sample(1:nrow(x),nrow(x)/2)
test <- (-train)
# build the model
lasso.model <- cv.glmnet(x[train,],y[train],alpha=1,lambda=grid) #sets unimportant variables to zero
plot(lasso.model)
best_lambda <- lasso.model$lambda.min # best lambda equals 0.01
#refit our model using the full data set and best_lambda
lasso.model.full <-glmnet(x,y,alpha=1)
lasso.predict <- predict(lasso.model.full,type="coefficients",s=best_lambda)
lasso.predict[-c(1,2),] # coefficients for optimal lambda
-lasso.predict)^2)
现在,我得到的最优lambda为0.01,这使我怀疑自己做错了什么。
我该怎么做?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。