パイプライン

Pipeline

パイプライン(Pipeline)とは、データの前処理、特徴量変換、モデルの学習・予測までの一連の処理ステップを連結し、一つの統合されたワークフローとして管理する仕組みです。

パイプラインの利点

データリークの防止(各ステップが正しい順序で実行される)、コードの再現性・可読性の向上、交差検証との安全な連携、本番デプロイの容易化など、多くの実践的な利点があります。

表:パイプラインの要点まとめ
ひとことで言うと前処理から学習・予測までの一連の処理を、1つにまとめた仕組み。
何がうれしいか同じ処理が訓練と本番で確実に再現され、データリークも防げる。
注意点途中の処理を差し替えるときは、全体を再学習し直す必要がある。

scikit-learnのPipeline

scikit-learnのPipelineクラスは最も広く使われている実装で、前処理(StandardScaler)、特徴量選択(SelectKBest)、モデル(RandomForest)などを連結できます。

図:パイプラインが束ねる処理
1欠損値補完空欄を埋める
▶
2エンコード文字を数値に
▶
3標準化スケールを揃える
▶
4モデル学習予測器を訓練
▶
51つにまとめる本番でも同じ順で実行

MLパイプライン全体

データ収集→前処理→特徴量エンジニアリング→モデル学習→評価→デプロイ→モニタリングまでの全体をML Pipelineと呼ぶこともあり、MLOpsの概念と密接に関連しています。