2011-06-12 47 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