【问题标题】:Is parallel processing a solution for RAM shortage in R due to a large dataset?由于大型数据集,并行处理是 R 中 RAM 短缺的解决方案吗?
【发布时间】:2019-08-17 11:04:52
【问题描述】:

我想在 224 GB 的数据集上使用 R 语言执行几种机器学习技术(逻辑回归、SVM、随机福雷斯特、神经网络),而我的 RAM 只有 16 GB。 我想一个解决方案可能是在云中租用具有 256 GB RAM 的虚拟 PC。例如,AWS 的 EC2 基于 Louis Aslett 的这篇文章中的 AMI: http://www.louisaslett.com/RStudio_AMI/

另外,我知道有几种并行处理方法和包。例如 Sparklyr、Future 和 ff。并行处理是否可以解决我的 RAM 受限问题?还是以更快的速度运行代码为目标的并行处理?

如果我认为并行处理是一种解决方案,我认为我需要修改机器学习包中的流程。例如,逻辑回归是用这行代码完成的:

模型

尽管据我所知,我对 glm 方法中的计算没有影响。

【问题讨论】:

标签: r amazon-ec2 parallel-processing future sparklyr


【解决方案1】:

您的问题是您无法一次将所有数据放入内存中,而标准的glm() 函数需要它。幸运的是,可以使用批量数据计算线性和广义线性模型。问题是如何组合批次之间的计算。

并行算法需要分解数据集以发送给工作人员,但如果您只有一个工作人员,则需要串行处理它们,因此您只需要“分解”部分。 R 中的 biglm 包可以为您的模型类做到这一点。

【讨论】:

  • @user2554330 谢谢你的解释。我还想做一个 SVM(包 e1071)、神经网络(Keras)和随机森林(randomForest)。似乎 biglm 不支持这些。您知道在有限 RAM 的情况下执行这些技术的最佳设置吗?
  • 不,我不知道。我可能会尝试将数据随机分成可管理的部分,然后平均每个部分产生的估计值。我不知道 R 包支持这个。
【解决方案2】:

我建议h2o。它对拟合逻辑回归、SVM、Random Forrest 和神经网络等有很多支持。

这里是how to install h2o in R

我也没有发现 bigmemory 软件包的可用功能受到限制。

【讨论】:

  • @苏仁。谢谢你。你确定它包含 SVM 吗?如果我看手册,我看不到 SVM:h2o.ai/wp-content/uploads/2018/01/RBooklet.pdf
  • 看来我对 SVM 的看法是错误的。我看到this,以为他们也实现了SVM。
  • @苏仁。谢谢你。你说的对。看来我读的手册很旧。虽然如果我理解正确的话,在我看来 H2O 是一个与 R 完全不同的应用程序/环境?
  • @Marcel h2o 提供了一个可用于 R(以及其他)的机器学习框架。不过,我不认为 R 可以使用 SVM。
猜你喜欢
  • 2014-09-04
  • 2018-06-07
  • 2022-11-08
  • 2016-06-27
  • 1970-01-01
  • 1970-01-01
  • 2020-07-07
  • 2017-09-24
相关资源
最近更新 更多