大数据集上的随机森林

时间:2012-04-05 23:05:59

标签: r machine-learning random-forest

我在R中有一个大型数据集(1M +行乘6列),我想用它来训练一个随机森林(使用randomForest包)以进行回归。不幸的是,我在尝试一次完成所有操作时遇到Error in matrix(0, n, n) : too many elements specified错误,并且在运行数据子集时无法分配足够的内存类错误 - 低至10,000或所以观察。

看到我没有机会在我的机器上添加更多RAM,随机森林非常适合我想要建模的过程类型,我真的很想让这个工作。

非常感谢任何建议或解决方法的想法。

2 个答案:

答案 0 :(得分:11)

您可能会要求randomForest为数据创建邻近矩阵,如果您仔细想想,它将疯狂大:100万x 100万。无论您设置sampsize多小,都需要这个大小的矩阵。实际上,只需谷歌搜索错误消息似乎就可以证实这一点,因为包裹作者states认为找到n,n)的整个源代码中唯一的位置是计算邻近矩阵。

但是,由于您没有提供有关您正在使用的实际代码的详细信息,因此很难提供更多帮助。

答案 1 :(得分:1)

我建议在R中使用bigrf package,因为它是针对您遇到的问题类型(即缺少足够的RAM)而设计的。很遗憾,目前,bigrf已从CRAN中移除,但档案中仍然可以使用{(1}})。

另一种方法可能涉及根据不同的训练数据组合RF,但结果可能被认为是荒谬的(详见答案:Can't install bigrf package)。后一篇文章中提到的修改确实对我有用,但我运行的组合RF有时更好,有时甚至比仅使用一个RF(YMMV)更差。