我试图使用以下页面中的代码进行Lasso回归https://www.rstatisticsblog.com/data-science-in-action/lasso-regression/
问题是,我的r不识别y-var[测试],说它没有找到。当我将其转换为y-var[x-test]时,在这行代码之后,我会得到以下消息
cv_output <- cv.glmnet(x_vars[train,], y_var[train],
alpha = 1, lambda = lambda_seq)
Error in storage.mode(y) <- "double" :
invalid to change the storage mode of a factor
我做错了什么?
任何见解都会有所帮助。
您所指的代码中有一些拼写错误/错误。我修复了其中一些,这对我来说很有效:
library(glmnet)
# Loading the data
data(swiss)
x_vars <- model.matrix(Fertility~. , swiss)[,-1]
y_var <- swiss$Fertility
lambda_seq <- 10^seq(2, -2, by = -.1)
set.seed(86)
train <- sample(1:nrow(x_vars), floor(nrow(x_vars)/2))
cv_output <- cv.glmnet(x_vars[train,], y_var[train],
alpha = 1, lambda = lambda_seq)
我只收到关于grouped=FALSE
的警告。