glmnet training在x,y数据帧参数上抛出错误:我用错了吗?

glmnet training在x,y数据帧参数上抛出错误:我用错了吗?,r,dataframe,regression,glmnet,R,Dataframe,Regression,Glmnet,我正在尝试学习glmnet的惩罚逻辑回归方法。我试图根据mtcars示例数据预测一辆车是否会有自动变速器或手动变速器。我认为我的代码非常简单,但我似乎遇到了一个错误: 第一个模块简单地将mtcars分成80%的列车组和20%的测试组 library(glmnet) attach(mtcars) smp_size <- floor(0.8 * nrow(mtcars)) set.seed(123) train_ind <- sample(seq_len(nrow(mtcars)),

我正在尝试学习glmnet的惩罚逻辑回归方法。我试图根据mtcars示例数据预测一辆车是否会有自动变速器或手动变速器。我认为我的代码非常简单,但我似乎遇到了一个错误:

第一个模块简单地将mtcars分成80%的列车组和20%的测试组

library(glmnet)
attach(mtcars)

smp_size <- floor(0.8 * nrow(mtcars))

set.seed(123)
train_ind <- sample(seq_len(nrow(mtcars)), size=smp_size)

train <- mtcars[train_ind,]
test <- mtcars[-train_ind,]

我错过什么了吗

强制第一个参数作为矩阵解:

p1 <- glmnet(as.matrix(train_x), train_y)

p1强制第一个参数作为矩阵解:

p1 <- glmnet(as.matrix(train_x), train_y)

p1不
附加
。这是一个会给你带来麻烦的坏习惯,你甚至没有在你共享的代码中使用它!所以…我不确定你认为你做了什么,把协变量转化成矩阵。矩阵是一种不同的数据结构。你不能仅仅通过对数据帧进行子集设置就得到一个。你看过
cv.glmnet
?它会自动折叠CV。不要附加
。这是一个会给你带来麻烦的坏习惯,你甚至没有在你共享的代码中使用它!所以…我不确定你认为你做了什么,把协变量转化成矩阵。矩阵是一种不同的数据结构。你不能仅仅通过对数据帧进行子集设置就得到一个。你看过
cv.glmnet
?它可以自动k折叠CV。
Error in elnet(x, is.sparse, ix, jx, y, weights, offset, type.gaussian,
:(list) object cannot be coerced to type 'double'
p1 <- glmnet(as.matrix(train_x), train_y)