首页 > 解决方案 > 套索回归 - 编码问题和寻求语法帮助

问题描述

我试图使用此页面中的以下代码进行套索回归 https://www.rstatisticsblog.com/data-science-in-action/lasso-regression/

问题是我的 r 不承认 y-var[test] 说它没有找到。当我将其转换为确实需要的 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

我究竟做错了什么?

任何见解都会有所帮助。

标签: machine-learningnew-operatorhelperlasso-regression

解决方案


您所指的代码中有一些错别字/错误。我修复了其中一些,这对我有用:

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.


推荐阅读