2013-01-23 36 views
12

我对python mining数据集太大而无法坐在RAM中,但坐在一个HD内。用于核心外计算/数据挖掘的Python工具

据我所知,我可以导出数据为hdf5文件,使用pytablesnumexpr也允许一些基本的核外计算。

接下来会发生什么?在可能的情况下进行小批量配料,并且在小批量配料不能使用时依靠线性代数结果来分解计算?

还是有一些更高水平的工具,我错过了?

感谢见解,

回答

3

你到底想干什么—你可以给一个或两个,请例子是什么?

numpy.memmap容易—

创建存储器映射到存储在磁盘上的一个二进制文件的阵列。
内存映射文件用于访问磁盘上大型文件的小段,而不会将整个文件读入内存。 NumPy的的 MEMMAP的是阵列状物体...

numpy+memmap看到左右。

scikit-learn人们非常了解,但更喜欢具体的问题。

+0

感谢您的回答丹尼斯。看起来skilearn有小型配料设施。其实我正在寻找最合理的方式来处理子图的缩小尺寸的核心外学习。特别是我努力了解hdf5,sql,nosql的相对优势。 – user17375 2013-01-31 15:08:12

+0

Zelazny7的大数据工作流问题更好,因为具体,并得到更好的答案 – denis 2013-03-18 11:20:22

3

我有一个类似的需求来处理sub map-reduce大小的数据集。我提出这个问题上,所以当我开始研究蟒蛇大熊猫作为一项严肃的替代SAS:"Large data" work flows using pandas

答案提出使用HDF5接口从大熊猫大熊猫数据结构存储直接在磁盘有提示。一旦存储,您可以批量访问数据并逐步训练模型。例如,scikit-learn有几个类可以在数据集的增量部分进行培训。一个这样的例子在这里找到:

http://scikit-learn.org/0.13/modules/generated/sklearn.linear_model.SGDClassifier.html

实现了partial_fit方法可以逐步训练的任何类。我仍然试图为这些问题找到一个可行的工作流程,并且希望讨论可能的解决方案。