这完全取决于您所需的算法。如果将它们转换为增量形式(例如,在任何给定时刻只需要一小部分数据,例如对于朴素贝叶斯,您只能将模型本身和正在处理的当前观测值保留在内存中),那么最好的建议是执行机器逐步学习,从磁盘读取新一批数据。
但是,许多算法,尤其是其实现确实需要整个数据集。如果数据集的大小适合您的磁盘(和文件系统限制),则可以使用mmap软件包,该软件包允许将磁盘上的文件映射到内存并在程序中使用它。但是请注意,对磁盘的读写操作非常昂贵,R有时喜欢频繁地来回移动数据。所以要小心
如果即使在硬盘驱动器上也无法存储数据,则需要使用分布式机器学习系统。一种基于R的系统就是Revolution R ,它旨在处理非常大的数据集。不幸的是,它不是开源的,花费很多钱,但是您可以尝试获得免费的学术许可证 。作为替代,您可能对基于Java的Apache Mahout感兴趣-它不是那么优雅,但是基于Hadoop并包含许多重要算法的非常有效的解决方案。
0
看起来R确实是为处理可以完全拉入内存的数据集而设计的。对于无法拉入内存的超大型数据集,建议使用哪些R包进行信号处理和机器学习?
如果R只是这样做的错误方法,那么我愿意接受其他可靠的免费建议(例如,如果有一些很好的方法来处理非常大的数据集,则建议使用scipy)