套索回归 glmnet 分配 Y 值。

Lasso regression glmnet assigning Y value.

好的,我正在做 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轴不正确。我觉得我的因变量应该在那里。但是我怎么把它弄到那里呢?假设 nuclear$pt 是我的因变量。为 Y 放置 nuclear$pt 是行不通的。

plot(CV)

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

如果我然后 运行 这感觉我的模型根本没有 运行。可能我的 Y 有什么问题,但我无法确定。

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

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

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