首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么指定sampsize不会提高randomForest的速度?

为什么指定sampsize不会提高randomForest的速度?
EN

Stack Overflow用户
提问于 2018-03-04 00:28:38
回答 1查看 185关注 0票数 1

我正在尝试使用randomForest包在R中的this large dataset上运行随机森林回归。我遇到了所需计算时间的问题,即使是在并行使用doSNOW和10-20个内核的情况下也是如此。我想我误解了函数randomForest中的"sampsize“参数。当我将数据集子集到100,000行时,我可以在9-10秒内构建一棵树。

代码语言:javascript
复制
training = read.csv("training.csv")
t100K = sample_n(training, 100000)
system.time(randomForest(tree~., data=t100K, ntree=1, importance=T)) #~10sec

但是,当我在运行randomForest的过程中使用sampsize参数从整个数据集中采样100,000行时,相同的1棵树需要几个小时。

代码语言:javascript
复制
system.time(randomForest(tree~., data=training, sampsize = ifelse(nrow(training<100000),nrow(training), 100000), ntree=1, importance=T)) #>>100x as long. Why?

显然,我最终还是要运行>>1树。这里我漏掉了什么?谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-03-04 00:58:18

你的支架稍微偏了一点。请注意以下语句之间的差异。您目前拥有:

代码语言:javascript
复制
ifelse(nrow(mtcars<10),nrow(mtcars), 10)

它计算对于mtcar中的每个元素具有小于10的TRUE的布尔矩阵mtcars<10中的行数,否则为FALSE。您需要:

代码语言:javascript
复制
ifelse(nrow(mtcars)<10,nrow(mtcars), 10)

希望这能有所帮助。

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

https://stackoverflow.com/questions/49086450

复制
相关文章

相似问题

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