機械学習ツールチェーン(ML Engineering)

機械学習プロジェクトの実務で使われる標準的なツール群。モデルの構築・訓練・評価・チューニング・実験管理・データ管理の各フェーズをカバーする。

ツール全体図

データ前処理        NumPy / Pandas / Matplotlib
      ↓
モデル構築・学習     scikit-learn / LightGBM / XGBoost / PyTorch
      ↓
ハイパラチューニング  Optuna
      ↓
実験管理            Weights & Biases(WandB)
      ↓
データバージョン管理  DVC(+ Git)

モデル構築ライブラリ

scikit-learn

Pythonの機械学習ライブラリの代表格。非Deep系機械学習の中心的存在。

  • 特徴: 訓練・評価のフローが統一されたAPI
  • 用途: 分類・回帰・クラスタリング・次元削減・特徴量エンジニアリング
  • 前提: モデルを訓練してから評価するという基本的な機械学習パイプラインを体験できる

LightGBM(Light Gradient Boosting Machine)

決定木+アンサンブル学習(勾配ブースティング)を組み合わせた手法。

特徴詳細
長所一般的な機械学習モデルの中で精度が高い・訓練コストが低い
短所過学習に陥りやすい
パラメータ大量のハイパーパラメータを持ち、チューニングが精度を大きく左右する

XGBoost

アンサンブル型の勾配ブースティング回帰木。データ分析コンペで広く活用。

特徴詳細
長所計算速度が速い・大規模データやスパースな特徴空間に強い・前処理なしでも高精度
用途データ分析コンペ(Kaggle等)・幅広いビジネス課題

ハイパーパラメータ最適化

Optuna

機械学習のハイパーパラメータの最適化を自動化するフレームワーク。Preferred Networksが開発。AI系で非常に有名。

  • 特徴: 探索空間の定義→試行の自動化→最適値の発見
  • 学習法: Google Colabで実行できるNotebookが提供されているハンズオンあり
  • シングルプロセス実行: Optuna入門記事で基本的な使い方を習得可能

実験管理

Weights & Biases(WandB)

深層学習・機械学習の開発や実験管理を容易にするプラットフォーム。

  • 機能: 実験の記録・可視化・比較・ハイパーパラメータ追跡
  • 用途: 複数の実験を管理し、最適な設定を見つける際に活用
  • 通称: WandB(ワンドビー)

データバージョン管理

DVC(Data Version Control)

機械学習プロジェクトの「データ」のバージョン管理ツール。Gitと一緒に使用する。

  • 機能: データセット・モデルのバージョン管理、パイプラインの再現性確保
  • 特徴: Gitでコードを管理するように、データもバージョン管理できる
  • 用途: 大規模データセット・モデルの変更履歴を追跡

ツール選択の指針

タスクの性質
├── 非Deep系(表形式データ・構造化データ)
│   └── LightGBM / XGBoost / scikit-learn
└── Deep系(画像・音声・自然言語)
    └── PyTorch(主流)/ Chainer
        └── 詳細: [[深層学習フレームワーク(PyTorch・Chainer)]]

コンペでの定番
└── LightGBM + XGBoost のアンサンブル + Optuna チューニング + WandB 実験管理

関連概念

関連エンティティ