用于核外计算/数据挖掘的Python工具

f8rj6qna  于 2023-02-15  发布在  Python
关注(0)|答案(4)|浏览(135)

我感兴趣的是python mining数据集太大,不能放在RAM中,而是放在单个HD中。
我知道我可以使用pytables将数据导出为hdf5文件,而且numexpr允许一些基本的核外计算。
接下来会发生什么?在可能的情况下使用迷你批处理,在无法使用迷你批处理时依赖线性代数结果来分解计算?
还是我遗漏了一些更高级的工具?
多谢你的见解,

jvidinwx

jvidinwx1#

你到底想做什么--你能给予一两个例子吗?
很简单-
创建一个存储在磁盘上 binary 文件中的数组的内存Map。
内存Map文件用于访问磁盘上大文件的一小部分,而不是将整个文件读入内存。
另请参见SO上的numpy+memmap
scikit-learn的人知识渊博,但更喜欢具体的问题。

vohkndzv

vohkndzv2#

在sklearn 0.14(即将在未来几天发布)中,有一个成熟的文本文档核心外分类的例子。
我认为这是一个很好的例子:
http://scikit-learn.org/dev/auto_examples/applications/plot_out_of_core_classification.html
在下一个版本中,我们将使用更多的分类器扩展这个示例,并在用户指南中添加文档。
注意:你也可以用0.13复制这个例子,所有的构建模块都已经存在了。

fnvucqvd

fnvucqvd3#

我也有类似的需求,需要处理子Map缩减大小的数据集。当我开始研究python panda作为SAS的替代品时,我在SO上提出了这个问题:"Large data" work flows using pandas
答案建议使用Pandas的HDF 5接口直接在磁盘上存储Pandas的数据结构。一旦存储,你就可以批量访问数据并增量训练模型。例如,scikit-learn有几个类可以在数据集的增量片段上训练。下面就是这样一个例子:
http://scikit-learn.org/0.13/modules/generated/sklearn.linear_model.SGDClassifier.html
任何实现partial_fit方法的类都可以增量训练。我仍然在尝试为这类问题获得一个可行的工作流,并对讨论可能的解决方案感兴趣。

8cdiaqws

8cdiaqws4#

数据挖掘的目标是从组织的数据中获得可操作的见解:企业基于他们对他们所拥有的数据的了解来决定他们可以做什么。
换句话说,数据挖掘就是获取大量数据并从中提取洞察力,就像物理采矿从成堆的原矿中提取少量贵金属一样。
然而,数据挖掘使用的是统计数据、代码和机器学习算法,而不是炸药和冶炼,其中许多数据挖掘工具是由Python编程语言及其广泛的第三方模块生态系统提供的。
阅读更多:https://taazaa.com/python-tools-for-data-mining/

相关问题