3

我正在使用 caret 包来运行 gbm 模型。模型运行后,我使用 varImp 函数提取重要预测变量列表(显示前 20 个)。但是,我想在字符列表中捕获预测变量的名称。我怎么做?从 varImp 返回的对象似乎没有列出预测器名称的属性 - 只有变量重要性。这是一个示例:

gbmModel= train(target ~. , data = trainData, ....other params )
varimp = varImp(gbmModel, scale=TRUE)
str(varimp)
List of 3
 $ importance:'data.frame': 77 obs. of  1 variable:
..$ Overall: num [1:77] 6.63 0 5.35 2.01 0 ...
$ model     : chr "gbm"
$ calledFrom: chr "varImp"
- attr(*, "class")= chr "varImp.train"
## Display the important variables

varimp

gbm variable importance

 only 20 most important variables shown (out of 77)

           Overall
Var126     100.000
Var189      99.647
Var113      41.994
... And so on

我想要一个像 ("Var126", "Var189", "Var113" ...)

提前致谢,

4

2 回答 2

6

从您提供的输出结构看来,

rownames(varimp$importance)

将返回您所追求的值。

于 2014-06-25T18:28:47.247 回答
0
varImp(gbmModel, scale = TRUE)$importance

返回所有变量

于 2020-01-27T19:18:18.113 回答