首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用护林员绘制OOB错误与树数的关系?

如何用护林员绘制OOB错误与树数的关系?
EN

Stack Overflow用户
提问于 2020-09-17 07:07:09
回答 1查看 835关注 0票数 1

我希望通过绘制OOB错误和树数来获得随机森林的最优树数,并查看错误平台在哪一点。然而,由于我的问题涉及文本挖掘,所以我的训练数据是稀疏矩阵类型的,即在dgCMatrix中。这意味着我不能使用randomForest包来训练我的模型,因为randomForest不支持稀疏矩阵。相反,我必须使用游侠包,但护林员不给OOB错误与树的数目。我尝试过将我的稀疏矩阵转换成9万×5,500维的数据来在randomForest中运行,但是即使是并行执行,它也需要很长的时间,而且我没有这种计算能力。

所以我的问题是:

  1. 如何使用游侠绘制OOB错误与树数的关系?

  1. ,还有什么方法可以将稀疏矩阵转换成数据?到目前为止我已经试过了

train_matrix <- as.data.frame(as.matrix(train_dtm))

  1. 使用转换的数据帧减少randomForest运行时的一些方法是什么?

  1. 是否有其他方法来确定最优的树数,而无需绘制OOB错误和如果上面失败的树数?

如果可能的话会很感激你的帮助。谢谢!

EN

回答 1

Stack Overflow用户

发布于 2021-05-24 23:25:39

我遇到了一个类似的问题,最后我采取了穷人的方法(这只回答了你的第一个问题):

代码语言:javascript
复制
library(ranger)

# sample data
# install.packages("AmesHousing")
d <- AmesHousing::make_ames()

nt <- seq(1, 501, 10)

oob_mse <- vector("numeric", length(nt))

for(i in 1:length(nt)){
  rf <- ranger(Sale_Price ~ ., d, num.trees = nt[i], write.forest = FALSE)
  oob_mse[i] <- rf$prediction.error
}


plot(x = nt, y = oob_mse, col = "red", type = "l")

我不知道是否有一个“最优”的树数,但是建更多的树会大大降低你的预测速度,特别是在做部分依赖图的时候。这是我这么做的唯一原因。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63932923

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档