【问题标题】:Parallelizing random forests并行化随机森林
【发布时间】:2016-09-09 20:15:31
【问题描述】:

通过搜索和询问,我发现了许多可以用来利用服务器所有内核的软件包,以及许多可以执行随机森林的软件包。

我对此很陌生,我迷失在所有并行化随机森林训练的方法之间。您能否就使用和/或避免使用它们中的每一个的原因或它们的某些特定组合(有或没有caret?)提供一些建议?

并行化包:

doParallel,

doSNOW,

doSMP(已停产?),

doMC

(那么mclapply 呢?)


随机森林包:

[caret + 以下一些]

rf,

parRF,

randomForest,

ranger,

Rborist,

parallelRandomForest(使我的 R Studio 会话崩溃...)

谢谢

【问题讨论】:

  • 这是否意味着您决定需要大量的树?
  • 感谢您的建议(以及一些特征工程)以及培训时间,我已经设法减少了使用的特征数量。但不幸的是,我似乎仍然需要有很多树,是的。 (但我可能做错了一些事情,我还在探索中。
  • 一般建议:这个问题有点宽泛,所以它可能不会吸引太多答案。例如,最好只关注并行计算的 R 包,甚至更好地询问带有随机森林的单个包。
  • 我知道,我什至预计它会被否决。问题是,我发现了很多东西,以及并行化包和随机森林包的组合,我迷失了哪种组合适合我的需求。

标签: r parallel-processing random-forest


【解决方案1】:

关于 SO 有几个答案,比如parallel execution of random forest in RSuggestions for speeding up Random Forests,我会看看。

这些帖子很有帮助,但有点旧。 ranger 包是随机森林的一个特别快速的实现,所以如果你是新手,它可能是加速模型训练的最简单方法。 Their paper 讨论了一些可用包的权衡 - 根据您的数据大小和功能数量,哪个包为您提供最佳性能会有所不同。

【讨论】:

  • 谢谢。关于第一个链接,.multicombine=TRUE 将与 caret + ranger 一起使用吗?如果是这样,我如何通过train() 传递它?
  • 关于你的第二个链接:如果我在train() 中使用caret + allowParallel = TRUE,我一定不能使用foreach 语法,对吧?我之前还需要做registerDoParallel(makeCluster(detectCores()))(例如来自doParallel)吗?或者相反,会不会出问题?
  • 'ranger' 包是加速随机森林计算的非常酷的工具。最近查了一下。
猜你喜欢
  • 2019-04-11
  • 2012-12-15
  • 2017-03-19
  • 2017-03-15
  • 2014-11-12
  • 2014-08-07
  • 2015-10-15
  • 2015-02-15
  • 2018-07-10
相关资源
最近更新 更多