2011-06-12 75 views
2

有沒有人有一個Python API來獲取各種ML的數據集,沿Python API加載各種機器學習數據集?

X, Y, info = mldata.load(name, db=, verbose=) 
X: N x dim data, a NumPy array 
Y: N, ints for class numbers or None 
info: a dict with ... 

我寧願直接用Python NumPy的, 但如果RPY功能可能只是得到的數據,這可能是好的 行(對不起,不多說R)。

對於「DB」,平面文件就可以了,像

#! http://archive.ics.uci.edu/ml/machine-learning-databases 
# ncol nrow nclass year name    etc. 
    3 2858 2 2008 "Character+Trajectories" Time-Series  Classification, Clus 
    4 150 2 1988 "Iris" Multivariate Classification Real 
    8 768 2 1990 "Pima+Indians+Diabetes" Multivariate Classification Inte 
... 

爲什麼只是平面文件,而不是「真實」星展? 因爲我可以下載它們一次,然後瀏覽,排序,awk接近0努力;其他人可能更喜歡花哨的搜索引擎。

無論數據是存儲在本地還是通過網絡加載對我來說都是一種無人關懷。(Do both,env MLDATAPATH =(local dir ... url ...))?

(基本API現在應該用統一的名稱和統一的數據, 網站是微不足道的,但是勻化如UCI/ml的樣子,頗有枯燥的工作。)

回答

1

從Scikits.learn的人解決了這個問題在Scikits.learn examples

雖然數據集有各種形狀和大小,但它們確實有處理每個數據集的自定義代碼。 (如果你只有CSV或ARFF格式的數據集,而不是灰度圖像等等,這將是不同的)。

+0

這是正確的方向,但scikits.learn-0.8/scikits/learn/datasets有6個csvs/3的descr,而twenty_newsgroups.py就是這樣;我正在尋找一個通用的API--對於非統一的站點來說,這確實很難。 – denis 2011-06-12 11:01:14

+1

這裏有一個通用的加載器,用於審查mldata:https://github.com/scikit-learn/scikit-learn/pull/186 和另一個針對在libsvm/svmlight下分發的大規模稀疏數據集的高度優化加載的評論格式在這裏: https://github.com/scikit-learn/scikit-learn/pull/209 在scikit學習,數據通常加載爲np.array或scipy.sparse(通常CSR)與形狀( n_samples,n_features)。目標信號通常是具有形狀的np.array(n_samples,)。 – ogrisel 2011-06-12 11:04:32

+1

謝謝Olivier,看起來很有前途。是否有每行一個數據集的數據庫或摘要?在mldata.org上看不到一個。 – denis 2011-06-13 09:07:08