试图在R中实施Lasso时“争论Y缺失”?

问题描述 投票:-1回答:1

尝试在R中执行功能选择。我正在使用glmnet包来执行此操作。到目前为止,这是我的代码:

lasso_model = glmnet(as.matrix(x = lasso, y = lasso_target, 
standardize=TRUE, alpha=1))

lasso是一个充满数字和分类预测变量的数据框。第一列是我删除的目标变量。

lasso_target是我作为自己的数据帧存储的目标变量。

错误:

Error in drop(y) : argument "y" is missing, with no default

我的目标是在将数据提供给我的模型之前从我的数据框中删除无信息的功能。任何帮助将不胜感激!

r machine-learning glmnet
1个回答
1
投票

你的亲密!但输入和响应变量需要单独定义。你做的是将它们组合成一个矩阵(除了glmnet的其他args)并将整个事物传递给函数。由于x是默认情况下的第一个参数,它假定它是输入矩阵,然后找不到负责的变量,因为y参数尚未定义。因此,您会收到一条错误消息。

这应该做的伎俩:

lasso_model <-  glmnet(x = as.matrix(lasso), 
                       y = as.matrix(lasso_target), 
                       standardize=TRUE, 
                       alpha=1)
© www.soinside.com 2019 - 2024. All rights reserved.