具有大数据的随机森林 - 树的数量与观察的数量

数据挖掘 大数据 随机森林
2021-09-27 21:31:54

我经常使用随机森林、正则化随机森林、引导随机森林和类似的树模型。

我正在处理的数据量已经超出了我可以使用 HPC 和并行性解决的问题。由于行长(观察)而不是列(特征),它通常很大。数据通常也不是正态分布的。

我必须在以下之间做出选择:

  1. 使用完整数据或相对较大的比较样本运行少量树木(即 50 棵或更少)
  2. 运行数倍于树的数量,但样本量相应缩小

有变通方法,对于任何一种情况——例如,我可以做一些临时测试,看看我认为哪个会更好,但我想知道是否有一个好的理论(或稳健的经验)推理要么指导方法的选择,要么描述正在做出的权衡?

换句话说,我希望对这种(类型)算法背后的数学、统计和理论更熟悉的人可以提供一些普遍的见解。

1个回答

我建议使用选项#1 和#2 的组合。

您可以首先尝试调整您的超参数,以了解您可以将树的数量减少到随机森林模型的预测在测试集上开始恶化的程度。

这是因为改变 的值mtry,即为新树随机选择的特征数量,是唯一会影响模型准确性的有意义的超参数。由于平均收敛为否。树木增加,没有。树的数量可以减少到其性能不会受到太大影响的程度。因此,您需要迭代并选择一个限制,超出该限制,极少数树可能无法产生足够强的集成。随机森林需要通过使用更多的基础学习器来通过平均每棵树的输出来减少方差,从而达到最佳效果。

从您的案例中不清楚您是使用随机森林进行分类还是回归问题。如果这是一个分类问题,并且如果您的数据集在正类与负类的比例方面不平衡;那么您可以通过对多数类进行欠采样来减小训练集的大小,使其更接近 1:1 的比例。由于您有大量记录,因此这种基于类的抽样可以提高准确性并减少训练的数据量。

此外,如果您有一个性能良好的微调随机森林,那么您还可以评估由 OOB 样本上的算法确定的最不重要的丢弃特征。这将减少训练模型所需的时间。