R的内存限制是什么?

数据挖掘 apache-hadoop r
2021-10-06 04:50:54

在评论“应用预测建模”时,一位评论者指出

我对统计学习 (SL) 教学法的一个批评是在评估不同建模技术时没有考虑计算性能。SL 强调自举和交叉验证来调整/测试模型,因此计算量非常大。再加上嵌入在 bagging 和 boosting 等技术中的重新采样,你就会对大型数据集的监督学习产生计算地狱的恐惧。事实上,R 的内存限制对模型的大小施加了相当严格的限制,这些模型可以通过随机森林等性能最佳的方法进行拟合。尽管 SL 在针对小型数据集校准模型性能方面做得很好,但了解大型数据的性能与计算成本肯定会很好。

R 的内存限制是什么,它们是否对模型的大小施加了严格的限制,这些模型可以通过随机森林等性能最佳的方法进行拟合?

3个回答

正如 Konstantin 所指出的,R 在系统内存(即 RAM)中执行所有计算。因此,RAM 容量是 R 中计算密集型操作的一个非常重要的限制。克服这个限制,这些天数据被存储在 HDFS 系统中,其中数据没有加载到内存中而是运行程序,程序转到数据和执行操作,从而克服内存限制。RHadoop ( https://github.com/RevolutionAnalytics/RHadoop/wiki ) 是您正在寻找的连接器。

考虑到对计算密集型算法的影响,随机森林/决策树/集成方法对大量数据(根据我的经验至少 50,000 次观察)占用大量内存并且速度相当慢。为了加快这个过程,并行化是可行的方法,并行化在 Hadoop 中是固有的!这就是 Hadoop 真正高效的地方。

因此,如果您要使用计算密集型且速度较慢的集成方法,您可能希望在 HDFS 系统上进行尝试,这样可以显着提高性能。

R 在内存中执行所有计算,因此您无法对大于可用 RAM 量的数据集执行操作。但是,有一些库允许使用 R 进行大数据处理,还有一些流行的大数据处理库之一,如 Hadoop。

这种批评不再是合理的:

虽然大多数标准和最受推崇的 R 库确实仅限于内存计算,但有越来越多的专用库来处理不适合内存的数据。
例如,对于大型数据集上的随机森林,您有 library bigrf更多信息在这里:http ://cran.r-project.org/web/packages/bigrf/

另一个增长领域是 R 与 hadoop 等大数据环境的连接性,这开启了另一个可能性世界。