Python API加载各种机器学习数据集?

2 投票
2 回答
2007 浏览
提问于 2025-04-16 19:24

有没有人知道用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对象里,而是会自动搜索并下载你选择的数据集。你甚至可以选择所有特定大小和机器学习任务类别的数据集。

https://github.com/tirthajyoti/UCI-ML-API

1

Scikits.learn的团队解决了这个问题,具体可以参考他们的示例教程

不过,数据集的种类和格式非常多样,所以他们为每种数据集都写了专门的代码来处理。(如果你只有CSV或ARFF格式的数据集,而没有灰度图像等其他格式,那情况就会简单很多)。

撰写回答