我有一个数据集,它每天都在增长。我很担心,不久之后,这个数据集的规模会变得太大,内存可能无法容纳。我在我的应用程序中使用随机森林分类器和回归器。我听说过部分拟合,但我不知道随机森林是否可以这样做。 我该如何确保应用程序不会崩溃,并且即使数据集超出内存大小,它仍然能够良好运行。如果使用svm代替随机森林,情况会有所不同吗?
一般来说,您应该寻找提供增量或在线训练的方法。在这种情况下,您不必一次向算法呈现完整的数据集,而是在新数据变得可用时进行呈现。如果数据每天增长且计算资源有限,则这是至关重要的。随机梯度下降是一种相当受欢迎的优化方法,符合您的要求。您可以使用随机森林的一个变种,称为Mondarian Forest。引用链接论文的摘要:“Mondrian forests取得了与现有在线随机森林和定期重新训练批处理随机森林相当的竞争性预测性能,同时速度超过一个数量级,因此代表更好的计算与准确性的权衡。” 代码可以在GitHub上找到。如果不知道您的数据和问题的性质,就无法为您提供比随机森林更好的具体指导。如果想坚持使用scikit-learn,请查看文章Strategies to scale computationally: bigger data。