【问题标题】:Handling huge simulations in R在 R 中处理大型模拟
【发布时间】:2016-06-14 03:23:16
【问题描述】:

我编写了 R 程序,它生成一个长度为 100 万的随机向量。我需要模拟它一百万次。在 100 万个模拟中,我将使用 50K 个观察到的向量(以某种随机方式选择)作为样本。所以,50K 跨 1M 是样本大小。有没有办法在 R 中处理它?

问题很少,也有一些不太好的解决方案。

First R 无法在我的机器中存储如此庞大的矩阵。它超过了 RAM 内存。我查看了诸如 bigmemory、ffbase 等使用硬盘空间的软件包。但是如此庞大的数据可以有 TB 的大小。我的机器上有 200GB 硬盘可用。

即使可以存储,也存在运行时间的问题。代码可能需要超过 100 小时的运行时间!

任何人都可以提出一条出路!谢谢

【问题讨论】:

    标签: r database memory memory-management


    【解决方案1】:

    这个答案确实介于评论和答案之间。摆脱困境的简单方法是不使用如此庞大的数据集。您很可能可以获取该数据的一个合理大小的代表性子集(例如,需要不超过几百 MB)并以这种方式训练您的模型。

    如果您必须在具有数百万观察值的实际数据集上使用该模型,那么问题将不再与 R 相关。

    【讨论】:

      【解决方案2】:
      1. 如果可能,请使用sparse matrix techniques
      2. 如果可能,请尝试利用存储内存并将对象分块
      3. 如果可能,请尝试使用 H2O 等大数据工具
      4. 利用multicore and HPC 计算与pbdR、并行等
      5. 考虑在 AWS、Azure、DigitalOcean 等上使用大数据/HPC 云 VPS 实例的 Spot 实例。大多数提供预装 R 的发行版和高 RAM 多核实例,您可以“启动”(启动)和关闭(停止)快速而廉价
      6. 尽可能使用抽样和统计解决方案
      7. 考虑在关系数据库或 Spark + Scala 之类的东西中进行一些模拟或预模拟步骤;现在有些已经集成了 R,实际上

      【讨论】:

        猜你喜欢
        • 2017-09-24
        • 1970-01-01
        • 1970-01-01
        • 2021-01-18
        • 1970-01-01
        • 2017-07-18
        • 1970-01-01
        相关资源
        最近更新 更多