Python API加载各种机器学习数据集?
有没有人知道用Python可以获取各种机器学习数据集的接口,类似下面这样:
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不太熟)。
对于“数据库”,我觉得一个简单的文件就可以,比如:
#! 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
...
为什么只用简单文件而不是“真正的”数据库呢?因为我可以一次性下载这些文件,然后轻松地浏览、排序和处理它们;而有些人可能更喜欢复杂的搜索引擎。
数据是存储在本地还是通过网络加载对我来说无所谓。(可以同时做这两件事,环境变量 MLDATAPATH = ( 本地目录 ... url ... ) 吗?)
(对于那些名字和数据格式统一的网站,建立一个基本的接口应该很简单,但要把像uci/ml这样的数据统一起来,看起来会是个很无聊的工作。)
2 个回答
0
你可以查看这个包/代码库,用来搜索和导入任何UCI机器学习的数据集。它不会把数据集加载到Python对象里,而是会自动搜索并下载你选择的数据集。你甚至可以选择所有特定大小和机器学习任务类别的数据集。
1
Scikits.learn的团队解决了这个问题,具体可以参考他们的示例教程。
不过,数据集的种类和格式非常多样,所以他们为每种数据集都写了专门的代码来处理。(如果你只有CSV或ARFF格式的数据集,而没有灰度图像等其他格式,那情况就会简单很多)。