套索回归glmnet赋值Y值。

时间:2018-06-15 12:16:12

标签: r regression glmnet lasso

好的,我正在进行LASSO回归,但我的Y期有问题。 我知道我的X必须是一个矩阵,而y必须是数字。 在我的集合中就是这种情况。但是我觉得我的模型运行不正常。我首先告诉你我做了什么,然后我认为应该做什么(但不知道该怎么做)。

所以我做的如下。在这个例子中,我使用了来自R的核数据集。

library(boot)
data("nuclear")
attach(nuclear)
nuclear <- as.matrix(nuclear)

所以我把它转换成矩阵。然后我在x和y上使用了我的矩阵。

CV = cv.glmnet(x=nuclear,y=nuclear, family="multinomial", type.measure = "class", alpha = 1, nlambda = 100)

然而我觉得我的Y轴不正确。我觉得我的因变量应该在那里。但我怎么能在那里得到它?假设核$ pt是我的因变量。将核$ pt用于Y不起作用。

plot(CV)

fit = glmnet(x=nuclear, y=nuclear, family = "multinomial" , alpha=1, lambda=CV$lambda.1se)

如果我然后运行它,感觉我的模型根本没有运行。我的Y可能会错过一些东西,但我不能把手指放在上面。

1 个答案:

答案 0 :(得分:3)

您对x和y使用了相同的矩阵。你必须以某种方式分离独立变量和因变量。例如,您可以使用索引来选择变量:

cv.glmnet(x=nuclear[, 1:10],y=nuclear[, 11], family="binomial", 
   type.measure = "class", alpha = 1, nlambda = 100)

这将使用前10列核作为自变量,第11列作为因变量。