是什么导致 R 在处理大型数据集时崩溃?

What causes R to crash while working with large data sets?

问题:

我有多个交易数据数据集,用于预测事件(二元分类作为结果)。其中之一有 10,587,989 行和 23 列。我正在尝试 运行 gradient boosting 与 10 倍 cv 和 ctree (package:party) 但每次我 运行 这些模型我的系统崩溃。

硬件:

16 个内核,48 个 RAM,48 个 SWAP

问题:

是什么原因导致 R 在处理大型数据集时崩溃,即使在使用并行处理、添加更多内存、系统启动后也是如此?

我尝试过的东西:

我确实发现有人在评论 H2O。我还联系了供应商并向他寻求解决方案,他建议使用 Sparkly,但您的服务器中需要 Hadoop 层才能 运行 Sparkly。

I did find people commenting about H2O. I also reached out to a vendor and asked him for a solution, he suggested Sparkly but you need Hadoop layer in your server to run Sparkly.

您的供应商弄错了;您不需要 sparklyr / RSparkling 的 Hadoop 层,只需 Spark。

不过,您也可以跳过 Spark 层,直接使用 H2O。这是最好的选择,根据我的经验,我认为您的硬件足以训练 H2O GBM on 10M rows. Here's an H2O R tutorial 来展示如何对 GBM 执行网格搜索。启动 H2O 时,请确保将内存从默认的 4G 增加:

h2o.init(max_mem_size = "48G")

H2O 还支持 XGBoost,另一种 GBM 实现,因此这是另一种选择。