извлекать имена предикторов из varImp

Я использую пакет каретки для запуска модели 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

Мне нужен список типа ("Вар126", "Вар189", "Вар113" ...)

Заранее спасибо,


r gbm
person chittip    schedule 25.06.2014    source источник
comment
А что насчет rownames(varimp$importance)? В противном случае создайте воспроизводимый пример с тестовыми данными, чтобы мы можете запустить тот же код, что и вы, для проверки возможных решений.   -  person MrFlick    schedule 25.06.2014
comment
откуда varImp()? (Не из gbm, но, возможно, вы используете [неустановленный] пакет caret?)   -  person Gavin Simpson    schedule 25.06.2014
comment
varImp - это функция из пакета каретки.   -  person chittip    schedule 25.06.2014
comment
rownames (varimp $ important, похоже, помогает. Спасибо   -  person chittip    schedule 25.06.2014


Ответы (2)


Из структуры предоставленного вами вывода следует, что

rownames(varimp$importance)

вернет значения, которые вам нужны.

person MrFlick    schedule 25.06.2014
comment
просто varimp возвращает только 20 лучших функций, как получить имена только 20 лучших предикторов? - person parth; 30.01.2018
comment
Кто-нибудь знает, как получить имена предикторов вместо соответствующего номера столбца? - person user11428; 31.01.2019
comment
@parth rownames(varImp(gbmModel)$importance)[1:20] - person C. John; 08.05.2020

varImp(gbmModel, scale = TRUE)$importance

Вернуть все переменные

person forever    schedule 27.01.2020