OpenML REST API完全手册:从数据查询到实验结果提交的接口指南
【免费下载链接】OpenMLOpen Machine Learning项目地址: https://gitcode.com/gh_mirrors/op/OpenML
OpenML REST API是Open Machine Learning平台提供的核心接口,支持开发者通过标准化的HTTP请求实现机器学习数据集、实验任务和运行结果的共享与管理。本指南将详细介绍如何利用该API完成从数据查询到实验结果提交的全流程操作,帮助新手快速上手并融入OpenML生态系统。
核心功能与API架构
OpenML REST API遵循RESTful设计原则,提供了覆盖机器学习全生命周期的接口服务。其核心功能包括:
- 数据集管理:上传、查询和版本控制机器学习数据集
- 任务定义:创建和管理标准化的机器学习任务
- 实验运行:提交算法运行结果并获取评估指标
- 评估指标:获取预定义或自定义评估指标的计算结果
API端点采用统一的URL命名规范,基础路径为https://www.openml.org/api/v1,支持JSON和XML两种数据格式。所有非GET请求均需通过API密钥进行身份验证,该密钥可在用户个人资料页面获取。
OpenML API架构示意图,展示了数据、任务、运行和评估之间的关系
快速入门:API认证与基础请求
获取API密钥
- 注册OpenML账号并登录
- 在个人设置页面生成API密钥
- 将密钥通过
api_key参数附加到所有非GET请求中
基础请求示例
查询数据集列表(GET请求):
GET /api/v1/json/data/list上传新数据集(POST请求):
POST /api/v1/json/data/upload Headers: Content-Type: multipart/form-data Body: api_key=YOUR_KEY&description=@dataset.xml&dataset=@data.arff数据集操作:从查询到上传
查询数据集
OpenML提供多种数据集查询方式,满足不同场景需求:
按ID查询:
GET /api/v1/json/data/{dataset_id}高级搜索:
GET /api/v1/json/data/list?status=active&tag=classification&min_instances=1000返回结果包含数据集元数据、特征信息和质量指标,可通过qualities字段筛选符合特定条件的数据集。
OpenML数据集搜索界面,支持多维度筛选和排序
上传数据集
上传数据集需提供ARFF格式数据文件和XML描述文件:
- 准备符合OpenML格式规范的ARFF数据文件
- 创建包含数据集元数据的XML描述文件
- 通过multipart/form-data格式提交:
POST /api/v1/json/data/upload Body: api_key=YOUR_KEY description=@dataset_description.xml dataset=@data.arff成功上传后将返回数据集ID,用于后续任务创建和引用。
任务管理:定义标准化实验
查询任务
任务代表标准化的机器学习问题,可通过以下接口查询:
按ID查询任务详情:
GET /api/v1/json/task/{task_id}按类型查询任务:
GET /api/v1/json/task/list?task_type=SupervisedClassification任务响应包含数据集引用、评估方法和性能指标等关键信息,为实验复现提供标准化框架。
创建任务
创建任务需指定任务类型、数据集和评估流程:
POST /api/v1/json/task/create Body: api_key=YOUR_KEY task_type_id=1 input_data={...} estimation_procedure={...}其中task_type_id指定任务类型(如1代表监督分类),input_data定义输入数据集,estimation_procedure描述评估方法(如交叉验证)。
OpenML任务创建流程,展示了任务类型选择和参数配置界面
实验运行:提交与评估结果
提交运行结果
运行代表在特定任务上执行算法的结果,提交接口支持多种评估指标:
POST /api/v1/json/run/upload Body: api_key=YOUR_KEY run_xml=@run_description.xml output_file=@predictions.arffrun_description.xml需包含任务ID、算法设置和超参数信息,output_file为预测结果文件。
查询运行结果
按ID查询运行详情:
GET /api/v1/json/run/{run_id}按任务查询相关运行:
GET /api/v1/json/run/list?task_id={task_id}运行结果包含详细的评估指标,如准确率、F1分数等,支持不同算法在同一任务上的性能比较。
OpenML运行结果可视化界面,展示不同算法在任务上的性能对比
高级应用:工作流与批量操作
API工作流示例
典型的OpenML API工作流程如下:
- 发现数据集:
GET /data/list - 创建任务:
POST /task/create - 运行算法:本地执行并生成结果文件
- 提交运行:
POST /run/upload - 分析结果:
GET /run/{run_id}
批量操作与自动化
对于大规模实验,可利用批量接口提高效率:
批量查询数据集:
GET /api/v1/json/data/batch?ids=1,2,3,4,5批量获取评估结果:
GET /api/v1/json/evaluation/list?task_id={task_id}&flow_id={flow_id}结合脚本语言(如Python、R)可实现实验流程的自动化,示例代码可参考OpenML官方文档。
常见问题与错误处理
认证错误
错误码102:未提供API密钥
解决:在请求中添加api_key参数错误码111:无效的API密钥
解决:检查密钥是否正确或重新生成
数据验证错误
错误码131:描述文件格式错误
解决:验证XML描述文件是否符合XSD规范错误码202:运行结果XML验证失败
解决:使用OpenML验证工具检查文件格式
资源访问错误
错误码151:任务不存在
解决:确认任务ID是否正确或创建新任务错误码204:未知任务
解决:检查任务ID或使用task/list接口查询有效任务
总结与资源
OpenML REST API为机器学习实验的标准化和可复现性提供了强大支持,通过本文介绍的接口,开发者可以轻松实现数据集管理、任务定义和实验结果提交。更多资源:
- 官方文档:OpenML API文档
- 客户端库:Python、R
- 示例代码:OpenML示例库
- 社区支持:OpenML论坛
通过OpenML API,研究者可以更专注于算法创新而非基础设施建设,同时促进机器学习实验的透明化和可复现性,推动整个领域的协作与进步。
【免费下载链接】OpenMLOpen Machine Learning项目地址: https://gitcode.com/gh_mirrors/op/OpenML
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考