r - 使用 lasso 回归的交叉验证来找到最佳调整参数 λ
问题描述
通过使用交叉验证,我想找到最佳调整参数 lambda 和预测变量“收入”的 LASSO 回归的相应系数。
我对所有这些都很陌生,并且对步骤的顺序(以及其他所有内容)感到非常困惑。
到目前为止我的代码:
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,这让我怀疑我做错了什么。
我有什么不同的做法?
解决方案
推荐阅读
- java - 由于泛型问题,我的论点在该方法中不起作用
- javascript - 使用 AJAX 和 PHP 时的 Google 图表问题
- python - 通过 Selenium 向 WebElement 发送文本问题
- docker - NEO4j:不同主机中的因果集群
- javascript - 一个没有参数的函数怎么会突然在javascript中取参数?
- firebase - Firestore 中的数字分页
- angular - 类型'typeof observable angular 8 上不存在属性'throwerror'
- java - 使用 OpenCV 在 Android Studio 应用程序中获取 jpg 文件的路径以制作 Mat
- node.js - 用 Alexa 数数
- angular - 最初加载远程数据时 Angular 组件出现问题