如何从 R 中的 glmnet 获取系数名称?
How get coefs name from glmnet in R?
我在 R 中用 glmnet
做套索。我有套索系数 out$beta
输入:
x1 0.5744207722
x2 -0.3575682570
x3 -0.0995794334
如何提取变量的名称?
期望的输出:
x1, x2,x3
我试过的
$
as.data.frame
as.matrix
但其中 none 将 coefs
转换为 n 行 2 列矩阵。它们仍然是一个矢量,x1 0.5744207722
。
我无法手动完成。我有 1000 多个变量和更多模型 运行。而且我不会把它写在我的磁盘上,然后再读回来。
根据您在上面的输入,您似乎指定了具有单个 lambda 值的 glmnet
调用。
在这种特殊情况下,您可以像这样提取系数的名称:names(out$beta[, 1][out$beta[, 1] != 0])
。请注意,仅提取 non-zero 个 beta 的名称,这在此处应用 Lasso 时很有意义,因为 Lasso 执行特征缩减。
一个最小可重现的例子是这样的:
out <- glmnet(as.matrix(mtcars[-1]), mtcars[["mpg"]], lambda = 1)
我在 R 中用 glmnet
做套索。我有套索系数 out$beta
输入:
x1 0.5744207722
x2 -0.3575682570
x3 -0.0995794334
如何提取变量的名称?
期望的输出:
x1, x2,x3
我试过的
$
as.data.frame
as.matrix
但其中 none 将 coefs
转换为 n 行 2 列矩阵。它们仍然是一个矢量,x1 0.5744207722
。
我无法手动完成。我有 1000 多个变量和更多模型 运行。而且我不会把它写在我的磁盘上,然后再读回来。
根据您在上面的输入,您似乎指定了具有单个 lambda 值的 glmnet
调用。
在这种特殊情况下,您可以像这样提取系数的名称:names(out$beta[, 1][out$beta[, 1] != 0])
。请注意,仅提取 non-zero 个 beta 的名称,这在此处应用 Lasso 时很有意义,因为 Lasso 执行特征缩减。
一个最小可重现的例子是这样的:
out <- glmnet(as.matrix(mtcars[-1]), mtcars[["mpg"]], lambda = 1)