我有一个非常大的数据框,包含790,000行和140个预测变量。其中一些变量彼此之间强相关且在不同的尺度上。使用randomForest
包,我可以在每个核心上使用数据的小样本来生成一个森林,使用foreach
并使用combine()
函数将它们合并成一个大树,如下所示:
rf.STR = foreach(ntree=rep(125, 8), .combine=combine, .multicombine=TRUE, .packages='randomForest') %dopar% {
sample.idx = sample.int( nrow(dat), size=sample.size, replace=TRUE)
randomForest(x=dat[sample.idx,-1, with=FALSE],
y=dat[sample.idx, retention], ntree=ntree)
}
我想使用来自party
包的条件随机森林,以处理不同比例的相关变量,但是在cforests中没有combine()
方法,因此我不确定如何将几个cforest对象组合起来,以获取一个重要性图或一个预测结果。
是否有一种方法可以对数据的较小子集进行训练,并形成一个大型的cforest,或是制作多个小型cforests并将它们组合成一个更大的条件森林模型呢?
h2o
包,可以在这里下载。非常快速、开源且可以并行运行。更新速度非常快,有时文档的一致性会有所欠缺。 - Stereoparty :: cforest
不支持并行处理(据我所知)。在(较慢的)重新实现的“partykit :: cforest”中,我们已经添加了并行化支持,但是目前“partykit”版本还没有提供旧版“party”的所有功能。特别是,目前尚未实施任何变量重要性措施。因此,这对您没有太大用处。您可以直接联系“party”维护者(Torsten Hothorn),了解他是否有建议如何拆分学习“party :: cforest”。 - Achim Zeileis