跳转到主要内容

机器学习集市

项目描述

“AutoBazaar” 麻省理工学院数据到人工智能实验室的开源项目。

Development Status PyPi Travis Downloads

AutoBazaar

概述

AutoBazaar 是使用 The Machine Learning Bazaar 创建的 AutoML 系统,该系统是麻省理工学院数据到AI实验室的一个研究和框架,用于构建 ML 和 AutoML 系统。更多参考资料请见 下方

它以 Python 库的形式存在,可以直接在任何其他 Python 项目中使用,同时还有一个 CLI,允许您直接从命令行搜索用于解决问题的流水线。

安装

要求

AutoBazaar 已在 Python 3.5、3.6 和 3.7 上开发和测试

此外,尽管并非强制要求,但强烈建议使用 virtualenv,以避免干扰运行 AutoBazaar 的系统上安装的其他软件。

使用 pip 安装

安装 AutoBazaar 最简单、推荐的方式是使用 pip

pip install autobazaar

这将从 PyPI 拉取并安装最新稳定版本。

如果您想从源代码安装或为项目做出贡献,请阅读 贡献指南

数据格式

AutoBazaar 与 D3M Schema 格式 的数据集一起工作。

这个数据集架构由麻省理工学院林肯实验室为美国国防部高级研究计划局(DARPA)的数据驱动模型发现(D3M)项目开发,要求数据以可读性强的格式(如 CSV 文件或 JPG 图像)存在,并设置在一个文件夹层次结构中,旁边是一些 JSON 格式的元数据规范,这些规范包括有关所有数据的详细信息以及我们试图解决的问题。

有关架构和如何将您的数据格式化为符合它的详细说明,请参阅 架构文档

例如,您可以浏览一些包含在本存储库中的用于演示目的的数据集

快速入门

在这个简短的教程中,我们将引导您完成一系列步骤,帮助您使用 CLI 命令 abz 开始使用 AutoBazaar

有关其使用方法和可用选项的更多详细信息,请执行命令行中的 abz --help

1. 准备您的数据

确保您的数据已准备好,按照上面解释的 数据格式,在文件系统中直接可访问的未压缩文件夹内。

为了检查您的数据集是否可用并准备好使用,您可以在命令行中执行带有 list 子命令的 abz 命令。如果您的数据集不在当前工作目录中名为 data 的文件夹内,请务必在您的命令中添加 -i 参数,以指示包含数据集的文件夹路径。

假设数据位于当前文件夹中名为 input 的文件夹内,您可以运行

$ abz list -i /path/to/your/datasets/folder

输出应该是一个表格,其中包含指示目录中所有找到的数据集的详细信息

             data_modality                task_type task_subtype             metric size_human  train_samples
dataset
185_baseball  single_table           classification  multi_class            f1Macro       148K           1073
196_autoMpg   single_table               regression   univariate   meanSquaredError        32K            298
30_personae           text           classification       binary                 f1       1,4M            116
32_wikiqa      multi_table           classification       binary                 f1       4,9M          23406
60_jester     single_table  collaborative_filtering               meanAbsoluteError        44M         880719

注意:如果您看到一条错误信息,表明 No matching datasets found(未找到匹配的数据集),请检查您的数据集格式并确保已指示正确的路径。

在接下来的快速入门中,我们将使用存储库中 input 文件夹 内的 185_baseball 数据集。

2. 开始搜索过程

一旦数据准备就绪,您可以使用abz search命令开始AutoBazaar搜索过程。为此,您需要再次提供数据集所在路径以及要处理的数据集名称。

例如,如果您想搜索最佳

$ abz search -i /path/to/your/datasets/folder name_of_your_dataset

这将评估默认的流水线,而不对其进行额外的调整迭代。

为了启动实际的调整过程,您至少需要提供以下附加选项之一

  • -b, --budget:执行的最大调整迭代次数。
  • -t, --timeout:系统运行的最大时间,单位为秒。
  • -c, --checkpoints:逗号分隔的字符串,包含不同检查点,其中必须存储迄今为止找到的最佳流水线,并对其测试数据集进行评估。检查点时间之间不能有空格。例如,为了每10分钟存储最佳流水线,直到30分钟过去,您将使用以下选项-c 600,1200,1800

例如,为了在30秒内搜索处理185_baseball数据集,每10秒评估最佳流水线,但最大调整迭代次数为10,我们将使用以下命令

abz search 185_baseball -c10,20,30 -b10

有关可用选项的更多详细信息,请在您的终端中执行abz search --help

3. 探索结果

一旦AutoBazaar完成了最佳流水线的搜索,将在stdout中打印一个表格,总结每个数据集找到的最佳流水线。如果提供了多个检查点,还将包括每个检查点中最佳流水线的详细信息。

输出将类似于以下表格

                                          pipeline     score      rank  cv_score   metric data_modality       task_type task_subtype    elapsed  iterations  load_time  trivial_time  fit_time    cv_time error  step
dataset
185_baseball  fce28425-e45c-4620-9d3c-d329b8684bea  0.316961  0.682957  0.317043  f1Macro  single_table  classification  multi_class  10.024457         0.0   0.011041      0.026212       NaN        NaN  None  None
185_baseball  f7428924-79ee-439d-bc32-998a9efea619  0.675132  0.390927  0.609073  f1Macro  single_table  classification  multi_class  21.412262         1.0   0.011041      0.026212   9.99484        NaN  None  None
185_baseball  397780a5-6bf6-48c9-9a85-06b0d08c5a9d  0.675132  0.357361  0.642639  f1Macro  single_table  classification  multi_class  31.712946         2.0   0.011041      0.026212   9.99484  12.618179  None  None

或者,可以通过传递带有CSV文件名称的-r选项,将结果存储在该文件中。

abz search 185_baseball -c10,20,30 -b10 -r results.csv

接下来是什么?

有关AutoBazaar及其所有可能性和功能的更多详细信息,请访问项目文档网站

致谢

AutoBazaar是由MIT数据到AI实验室的一个开源项目,由以下团队构建

引用AutoBazaar

如果您在研究中使用了AutoBazaar,请考虑引用以下论文(《https://arxiv.org/pdf/1905.08942.pdf》)

@article{smith2019mlbazaar,
  author = {Smith, Micah J. and Sala, Carles and Kanter, James Max and Veeramachaneni, Kalyan},
  title = {The Machine Learning Bazaar: Harnessing the ML Ecosystem for Effective System Development},
  journal = {arXiv e-prints},
  year = {2019},
  eid = {arXiv:1905.08942},
  pages = {arxiv:1904.09535},
  archivePrefix = {arXiv},
  eprint = {1905.08942},
}

历史

0.2.1 - 2020-06-22

此版本整理了一些依赖关系,并更新了示例数据集和文档。

0.2.0 - 2019-11-26

第二个版本

  • 改进的CLI界面
  • 改进的数据集支持
  • 新的Docker镜像
  • 更新的依赖关系

这是用于生成第三版《机器学习集市论文》中解释的结果的版本。

0.1.0 - 2019-06-24

第一个版本。

这是用于生成第一版《机器学习集市论文》中解释的结果的软件的略微清理版本。

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源代码分发

autobazaar-0.2.1.tar.gz (65.9 kB 查看哈希值)

上传时间 源代码

构建分发

autobazaar-0.2.1-py2.py3-none-any.whl (32.4 kB 查看哈希值)

上传时间 Python 2 Python 3

支持者