R中的大数据内存问题

时间:2014-02-03 09:53:38

标签: r performance machine-learning sparse-matrix large-data

我在R中创建了一个tdm矩阵,我想写入一个文件。这是一个简单三重形式的大型稀疏矩阵,约20,000 x 10,000。当我将它转换为密集矩阵以通过cbind添加列时,我得到的内存错误很少,并且该过程无法完成。我不想增加我的RAM。

另外,我想 - - 将tf和tfidf矩阵绑定在一起 - 将稀疏/密集矩阵保存到csv - 运行批处理机器学习算法,例如we48的J48实现。

如何在内存限制内保存/加载数据集并运行批处理ML算法?

如果我可以将稀疏矩阵写入数据存储,是否可以在稀疏矩阵上的R中运行ml算法,并且在内存约束内?

2 个答案:

答案 0 :(得分:3)

可能有几种解决方案:

1)如果要处理整数,请将矩阵从double转换为整数。与双数相比,整数需要更少的内存。

2)尝试bigmemory包。

答案 1 :(得分:0)

除了@djhurio提到的解决方案之外,第三种解决方案是使用云计算服务,例如Amazon EC2提供的服务。你没有提到你需要多少RAM,但是我可以从当前的价格表快速收集,使用这些服务将获得高达244 Gb的RAM。我怀疑你在现实中需要那么多,如果你只需要16-32 Gb,价格就不会让人望而却步。

如果您是学术用户,您可能需要查看Revolution R中的RevoScaleR,这是R的商业版本,可在学术环境中免费获得。该软件可以开箱即用地处理大型物体。