0

glmnet在 R 中做套索。我有套索系数out$beta

输入:

x1  0.5744207722
x2 -0.3575682570
x3 -0.0995794334

如何提取变量的名称?

期望的输出: x1, x2,x3

我试过的

  1. $
  2. as.data.frame
  3. as.matrix

但它们都没有将 转换coefs为 2 行列矩阵。它们仍然是一个向量,x1 0.5744207722

我无法手动完成。我有 1000 多个变量和更多模型要运行。而且我不会不把它写在我的磁盘上,然后再读回来。

4

1 回答 1

1

根据您上面的输入,您似乎指定了一个glmnet带有单个 lambda 值的调用。

在这种特殊情况下,您可以像这样提取系数的名称names(out$beta[, 1][out$beta[, 1] != 0]):请注意,仅提取非零 beta 的名称,这在此处应用 Lasso 时很有意义,因为 Lasso 执行特征缩减。

一个最小可重现的例子是这样的: out <- glmnet(as.matrix(mtcars[-1]), mtcars[["mpg"]], lambda = 1)

于 2017-01-25T23:26:32.040 回答