繁体   English   中英

在R中处理大型模拟

[英]Handling huge simulations in R

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

问题很少,有些解决方案不是很好。

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

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

任何人都可以建议出路! 谢谢

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

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

  1. 如果可能,使用稀疏矩阵技术
  2. 如果可能,请尝试利用存储内存并将对象分块
  3. 如果可能,请尝试使用诸如H2O之类的大数据工具
  4. 通过pbdR ,并行等利用多核和HPC计算
  5. 考虑在AWS,Azure,DigitalOcean等上使用大数据/ HPC云VPS实例的现场实例。大多数提供预安装R且具有高RAM多核实例的产品发行版,您都可以“向上旋转”(启动)和向下旋转(停止)快速廉价地
  6. 尽可能使用抽样和统计解决方案
  7. 考虑在关系数据库或Spark + Scala之类的数据库中进行一些模拟或预模拟步骤; 如今,有些已经集成了R

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM