【发布时间】:2019-07-25 10:38:06
【问题描述】:
我拟合了一个随机森林模型。我已经使用了 randomForest 和 ranger 包。我没有调整森林中的树木数量,我只是将其保留为默认数量,即 500。现在我想看看它是否足够,即错误是否达到了稳定水平。所以我相信我需要提取单个树,随机取例如 100、200、300、400 和最后 500 棵树,从中取出 oob 树并计算 100、200、...树的 OOB 错误连续.然后我可以绘制 OOB 错误与树的数量。我发现randomForest::getTree 和ranger::treeInfo 返回一个树的data.frame,但我不知道那里是什么。更重要的是ranger::treeInfo 返回一个 NA 为 50% 的数据帧,整体输出更难阅读。
所以我的问题是:
- 如果我已经有一个包含 500 棵树的随机森林,我如何绘制 OOB 误差与森林中使用的树木数量的关系?
- 为什么
ranger::treeInfo有 50% 的 NA 而实际上只有那些行有预测?
这是一个最小的例子:
mpg2 <- mpg %>%
mutate(is_suv = as.factor(class == 'suv')) %>%
select(-class)
mpg_model <- ranger::ranger(is_suv ~ ., data = mpg2)
ranger::treeInfo(mpg_model, tree = 100)
【问题讨论】:
标签: r random-forest