【发布时间】:2018-06-11 19:43:49
【问题描述】:
我正在处理一个包含 100 多个特征的大型数据集(这些特征都是相关的,因为它们已经过过滤;原始数据集有 500 多个特征)。我通过 caret 包中的 train() 函数并使用“ranger”方法创建了一个随机森林模型。
问题是:如何按重要性提取所有变量,而不是仅提取前 20 个最重要的变量? varImp() 函数默认只产生前 20 个变量。
这是一些示例代码(减去训练集,它非常大):
library(caret)
rforest_model <- train(target_variable ~ .,
data = train_data_set,
method = "ranger",
importance = "impurity)
这是提取变量重要性的代码:
varImp(rforest_model)
【问题讨论】:
-
请注意,importance() 在这种情况下不起作用:
importance(rforest_model)会导致以下错误消息:UseMethod("importance") 中的错误:'importance' 没有适用的方法应用于“c('train', 'train.formula')”类的对象