openml/openml-python

OpenML's Python API for a World of Data and More 💫

OpenML‑Python – その概要

OpenML‑Python は、Python から OpenML プラットフォームにアクセスするためのクライアントライブラリです。OpenML は、研究者がデータセット、機械学習タスク(例: 定義済みの訓練・テスト分割)、実験結果を共有するオンラインリポジトリです。このライブラリは、OpenML REST API の薄い Pythonic なラッパーを提供し、コードを離れることなくデータのダウンロード、ベンチマークスイートの取得、自分の実行結果のアップロードができます。


コア機能(README に記載)

機能 説明
データセットアクセス openml.datasets.get_dataset(id_or_name) は Dataset オブジェクトを返し、get_data() で scikit‑learn などのツールにそのまま使える X, y, ... を取得できます。
タスク処理 openml.tasks.get_task(id) で定義済みの タスク(例: 特定の訓練・テスト分割を持つ分類問題)を取得します。基になるデータセットと分割インデックスを取得できます。
ベンチマークスイート openml.study.get_suite(name) は厳選されたタスク ID のリスト(例: amlb-classification-all)を返します。スイートをループして大規模なベンチマーク実験を実行できます。
実行結果のアップロード / ダウンロード スニペットには示されていませんが、このライブラリは実験結果を OpenML に投稿して公開ベンチマークの一部にする機能もサポートしています。
クロスプラットフォーム、最新 Python Python 3.10‑3.14 で動作し、Linux、macOS、Windows に対応しています。
インストール pip install openml で簡単にインストールできます。
引用サポート このライブラリを説明した JMLR 論文用のコピー可能な BibTeX エントリを提供します。

典型的な使用例ワークフロー

  1. データセットまたはタスクを選択 – 名前("credit-g")または数値 ID で選択します。
  2. データを読み込む – X, y = dataset.get_data(target="class") で特徴量とラベルを取得します。
  3. 特定の分割が必要な場合 – タスクオブジェクトから取得します(task.get_train_test_split_indices)。
  4. モデルを実行 – 訓練インデックスで任意の scikit‑learn / PyTorch などのモデルを訓練し、テストインデックスで評価します。
  5. (オプション)結果をアップロード – OpenML API を使用して実行を公開し、他の人が比較できるようにします。
  6. スケールアップ – タスクのスイート全体を取得し、大規模なベンチマークのためにプロセスを自動的に繰り返します。

誰が使うのか?

  • 研究者 – 各 CSV を手動でダウンロードすることなく、多くのデータセットで再現可能なベンチマークを実行したい人。
  • 学生 – モデル評価を学ぶ人。定義済みタスクにより、訓練・テスト分割が同一であることが保証されます。
  • ツール開発者 – メタラーニングや自動 ML パイプラインのために OpenML をプログラムでクエリする必要がある人。

はじめに

pip install openml
import openml
# README の例
dataset = openml.datasets.get_dataset("credit-g")
X, y, _, _ = dataset.get_data(target="class")

公式ドキュメント(バッジにリンク)には、認証、実行のアップロード、高度なクエリオプションの詳細が記載されています。


コミュニティと貢献

このプロジェクトはあらゆるレベルの貢献を歓迎します。新しい貢献者は "good first issue" タグの付いた issue から始めることをお勧めします。完全な貢献ガイドはリポジトリにあります。


要約: OpenML‑Python は、機械学習研究を行う誰にとってもデータセットとベンチマークへのアクセスを簡単にすることを目的とした、OpenML データサイエンスプラットフォームの本格的で積極的にメンテナンスされている Python クライアントです。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト