はじめに
今回はPipeLineモジュールについてのメモ。
機械学習モデルのスケーリングについて勉強していた時に出てきて、気になったので調べてみた。
PipeLineモジュールとは
estimator(学習)とtransformer(予測)を組み合わせて、機械学習パイプラインを作成するAPIである。主に機械学習モデル構築で用いる。
PipeLineモジュールを用いる利点
例えば、非決定義系モデルを扱う際にスケーリング(正規化や標準化)などの処理を行うことで精度を向上させる手法がある。
そのような際に、スケーリングと機械学習モデルの定義をいちいち別で書くと煩雑なコードになってしまうことが多い。
そこでPipeLineモジュールを用いることでスケーリング部分とモデル定義部分を一つの塊として定義することができる。
さらに、一般的なsklearn上にある機械学習モデルと同じようfitなども行えるため、煩雑になることなく使用することができる。
実際の使用方法
今回は例として、ロジスティック回帰と標準化を組み合わせた例を用いる。
Pipeline([('ss', StandardScaler()), ('model', LogisticRegression(C=0.01, random_state=42))])
引数のとしては、主にListを用いて定義する。
transformer・estimatorの並びの通り、estimatorが一番最後になることに注意する。
それぞれの定義の仕方は、(定義名, モデルの関数)とする。
ここで、複数のtransformerを定義することも可能である。
(公式Document : https://scikit-learn.org/stable/modules/generated/sklearn.pipeline.Pipeline.html)