科技公司如何在大型数据集上使用随机森林?

数据挖掘 r 随机森林 大数据
2021-09-21 03:44:40

该算法需要相当长的时间来训练具有中等数量参数的大型数据集:

https://stats.stackexchange.com/questions/37370/random-forest-computing-time-in-r

https://stackoverflow.com/questions/34997134/random-forest-tuning-tree-depth-and-number-of-trees

https://stackoverflow.com/questions/31278688/how-can-you-reduce-the-default-ntree-500-parameter-passed-to-rf-from-caret

我一直在尝试在具有 36 个预测变量的约 25,000 行数据集上运行它,并且它已经使用 6GB 的 RAM 超过 2 小时。

是否存在此算法在生产中使用或每天运行的实例?如果是这样,一种方法如何重新训练它或针对大型数据集对其进行优化?

2个回答

对于随机森林算法,构建完整的未修剪树的时间复杂度为(.n日志(n)), 在哪里n是记录/实例的数量和是变量的数量。该算法具有令人尴尬的并行性,因此在许多情况下,拥有可用资源的公司将简单地使用足够的计算节点来使模型能够在他们认为合理的时间内运行。

随机森林基于bagging 和投票

这意味着所有单个模型都必须坚持用于预测。因此,增加估计器的数量将需要更多的 RAM

好消息是,如果 Cores/CPU 可用,相同的属性使其有资格进行并行训练。请尝试一下。@Brady Gilg 也提出了同样的建议。

我已经尝试了大约 1000 万条记录,估计数在 15-40 之间,并且只需要不到 30 分钟。您的生产系统似乎很轻,或者 E2E 模型有问题。