scikit-learn Pipeline

機械学習を使ってモデルを作成するのに、一つのデータセットを学習データと評価データに分割して、学習データでモデルの学習を行い、評価データでモデルの評価を行う。モデルの学習の前に、学習データに対して標準化や次元削減など様々な前処理を施す必要な場合がある。一度、モデルが出来上がると、評価データを使ってモデルを評価するときも、学習データを前処理したときと同じパラメーターで評価データに対する前処理を行う必要がある。学習データと評価データに対して同じ処理を繰り返しているので、これをパイプライン化した方が、わかりやすくなるだけでなくミスも減らすことができる。

パイプラインを使用しない例

パイプラインを使用しない場合、学習データで fit した各処理を、評価データにも同様に施す必要がある。一連の処理を学習データと評価データの両方に対して実行していることになる。

パイプラインを使用する例

パイプラインを使用する場合は、あらかじめ全ての処理をパイプラインとして登録した後に、学習データを与えて fit してモデルを作成すれば、そのモデルに評価データをそのまま与えると、前処理と予測を行えるようになる。