2013-01-23 39 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方法可以逐步訓練的任何類。我仍然試圖爲這些問題找到一個可行的工作流程,並且希望討論可能的解決方案。