skrub-data/skrub

Machine learning with dataframes

skrub – データフレーム対応の機械学習前処理

それは何か

  • pandas ライクなデータフレームに格納された表形式データをクリーニング、変換、エンコードし、scikit-learn(または他の ML)モデルに直接入力できるようにするユーティリティを提供する Python ライブラリ。
  • モデルのトレーニングや推論ではなく、前処理段階に焦点を当てています。

主な機能(README に記載)

機能 説明
列ごとのクリーニング 一貫性のない文字列形式、欠損値、語彙外カテゴリなどの一般的な問題を検出して修正します。
エンコーディング 高カーディナリティのカテゴリ列を扱う堅牢なエンコーダー(例:ターゲットエンコーディング、頻度エンコーディング)を提供し、特徴空間を爆発させません。
類似性ベースのグループ化 類似した文字列(例:スペルミスのある製品名)を自動的にグループ化し、モデリング前にノイズを減らします。
scikit-learn との統合 scikit-learn の fit/transform API に従うトランスフォーマークラスを提供するため、パイプラインに組み込めます。
ドキュメントと例 ウェブサイト、自動生成ドキュメント、典型的なワークフローを示す実行可能な例のコレクションが付属しています。
コミュニティ ユーザーサポートとユースケース共有のための Discord サーバーと GitHub Discussions ページがあります。

典型的なワークフロー

import pandas as pd
import skrub

# データフレームを読み込む
df = pd.read_csv('data.csv')

# scikit-learn パイプラインでクリーニングとエンコーディング
from sklearn.pipeline import make_pipeline
from sklearn.ensemble import RandomForestClassifier

pipeline = make_pipeline(
    skrub.Cleaner(),          # 文字列、欠損値などを修正
    skrub.TargetEncoder(),   # カテゴリを数値特徴に変換
    RandomForestClassifier()
)

pipeline.fit(df.drop('target', axis=1), df['target'])

このライブラリは、ML プロジェクトのボトルネックとなることが多い、複雑で現実世界のデータ準備ステップを処理します。

インストール

  • PyPI と conda-forge で利用可能:pip install skrub または conda install -c conda-forge skrub。
  • README は、プロジェクトウェブサイトの詳細なインストール手順を参照しています。

はじめ方と学習リソース

  • 公式サイト(https://skrub-data.org/)には、自動生成ドキュメント、例のギャラリー、学習教材がホストされています。
  • インストール後、バンドルされたドキュメントは次のようにして見つけられます:
    import skrub
    print(skrub.__docs_dir__)
    

コミュニティと貢献

  • ユーザーは情報を広め、Discord に参加し、GitHub Discussions でユースケースを議論することが推奨されています。
  • バグや機能リクエストは GitHub issues で処理されます。貢献ガイドラインはウェブサイトにあります。

引用

  • 学術研究では、README にリンクされている Zenodo アーカイブを引用してください。

結論 skrub は、生の表形式データとクリーンでモデル対応の特徴の間のギャップを埋める実用的で文書化されたツールボックスであり、機械学習モデルをトレーニングする前に複雑なデータフレーム入力を処理することに多くの時間を費やすデータサイエンティストに特に役立ちます。

関連

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