Skip to main content
QUICK REVIEW

[论文解读] OpenML-Python: an extensible Python API for OpenML

Matthias Feurer, Jan N. van Rijn|arXiv (Cornell University)|Nov 6, 2019
Machine Learning and Data Classification参考文献 14被引用 18
一句话总结

OpenML-Python 是一个 Python API,可实现与 OpenML 平台的无缝集成,使研究人员能够以程序化方式访问数据集、任务和实验结果。它通过促进实验共享、结果上传以及与 scikit-learn 和其他 Python 机器学习库的集成,支持可复现的机器学习,方法是通过标准化的扩展接口实现。

ABSTRACT

OpenML is an online platform for open science collaboration in machine learning, used to share datasets and results of machine learning experiments. In this paper we introduce OpenML-Python, a client API for Python, opening up the OpenML platform for a wide range of Python-based tools. It provides easy access to all datasets, tasks and experiments on OpenML from within Python. It also provides functionality to conduct machine learning experiments, upload the results to OpenML, and reproduce results which are stored on OpenML. Furthermore, it comes with a scikit-learn plugin and a plugin mechanism to easily integrate other machine learning libraries written in Python into the OpenML ecosystem. Source code and documentation is available at https://github.com/openml/openml-python/.

研究动机与目标

  • 为研究人员在 Python 生态系统中提供一个用户友好的程序化接口,用于访问 OpenML 的数据集、任务和实验结果。
  • 通过 OpenML 实现对实验的完整溯源追踪,使研究人员能够开展、发布和复现机器学习实验。
  • 通过提供标准化的扩展机制,支持将新的基于 Python 的机器学习库集成到 OpenML 生态系统中,以实现可扩展性。
  • 通过自动化共享超参数、随机种子和评估指标,提升机器学习中的可复现性和协作性。
  • 通过实现对整理后的数据集和实验结果的大规模、一致访问,简化基准测试和元学习。

提出的方法

  • 通过面向对象的 Python 化接口暴露 OpenML 的 REST API,将 OpenML 实体(数据集、任务、流程、运行)映射为 Python 类。
  • 将 OpenML 数据格式转换为标准的 Python 数据结构,如 numpy 数组、scipy 稀疏矩阵和 pandas DataFrame。
  • 提供 scikit-learn 扩展,将 scikit-learn 估计器映射为 OpenML 流程,并支持带完整元数据的训练、预测和结果上传。
  • 实现可扩展性框架,允许通过定义的接口将新机器学习库集成,实现模型转换、训练和预测格式化。
  • 通过缓存数据并支持基于 OpenML 元数据的本地实验,实现离线使用。
  • 使用持续集成、自动化类型检查和 Sphinx 驱动的文档来确保代码质量和可用性。

实验结果

研究问题

  • RQ1如何将基于 Python 的机器学习生态系统无缝集成到 OpenML 平台,以实现数据共享和实验可复现性?
  • RQ2如何最有效地标准化不同 Python 机器学习库与集中式机器学习仓库(如 OpenML)之间的交互?
  • RQ3统一的 API 是否能够降低在多个数据集和算法之间共享、重用和基准测试机器学习实验的复杂性?
  • RQ4如何在实验执行和上传过程中自动化并保留溯源信息(例如超参数、随机种子、模型配置)?
  • RQ5OpenML-Python 在使用一致且共享的数据和结果进行大规模元学习和算法比较研究方面,能够发挥多大程度的促进作用?

主要发现

  • OpenML-Python 支持对 OpenML 上超过 10,000 个数据集和数百万个实验的程序化访问,并将数据标准化转换为 numpy、scipy 和 pandas 格式。
  • scikit-learn 扩展允许用户以极少代码完成模型训练、生成预测并上传结果,同时完整追踪超参数和随机种子。
  • 扩展机制支持遵循 scikit-learn API 的其他 Python 机器学习库的集成,促进整个生态系统的可复现性和互操作性。
  • 该软件包已用于涉及数百个数据集的大规模研究,支持一致的基准测试和元学习研究。
  • 该 API 支持自动化结果共享和可复现性,具备从 OpenML 数据直接可视化超参数性能轮廓图(例如 SVM 的 C 和 gamma)等功能。
  • 该项目持续维护,拥有社区贡献、持续集成以及在 GitHub 和 Read the Docs 上托管的全面文档。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。