r - 从 glmnet 中提取系数变量名称到 data.frame

标签 r glmnet

我想提取 glmnet 生成的模型系数并从中创建 SQL 查询。函数coef(cv.glmnet.fit)产生一个 ' dgCMatrix ' 目的。当我使用 as.matrix 将其转换为矩阵时,变量名丢失,只留下系数值。

我知道可以在屏幕上打印系数,但是是否可以将名称写入数据框?

有人可以协助提取这些名称吗?

最佳答案

更新:
我的答案的前两条评论都是正确的。我将答案保留在线条下方,仅供后代使用。

以下答案很简短,它可以工作并且不需要任何其他包:

tmp_coeffs <- coef(cv.glmnet.fit, s = "lambda.min")
data.frame(name = tmp_coeffs@Dimnames[[1]][tmp_coeffs@i + 1], coefficient = tmp_coeffs@x)

+1 的原因是 @i拦截的方法索引从 0 开始,但 @Dimnames[[1]]从 1 开始。

旧答案:(仅供后代使用)试试这些行:

非零系数:
coef(cv.glmnet.fit, s = "lambda.min")[which(coef(cv.glmnet.fit, s = "lambda.min") != 0)]

选择的功能:
colnames(regression_data)[which(coef(cv.glmnet.fit, s = "lambda.min") != 0)]

然后将它们放在一起作为数据框是直截了当的,但是如果您也想要那部分代码,请告诉我。

关于r - 从 glmnet 中提取系数变量名称到 data.frame,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27801130/

相关文章:

r - R中的惩罚 Gamma 回归

r - 基于具有不同列名的 2 列合并 2 个数据框

r - glmnet中的自动插入符号参数调整失败

R cv.glmnet 错误 : "need at least two non-NA values to interpolate"

r - cowplot:如何通过修改轴限制来自定义主面板和边缘图之间的间隙?

`glmnet` 的岭回归给出的系数与我通过 "textbook definition"计算的不同?

r - 如何获得 glmnet 多项逻辑回归的混淆矩阵?

r - 如何在R 3.3.2上安装Rhadoop?

R包开发: run_examples Error: Can't find directory

r - 如何访问存储在包中的 R markdown