sklearnのpipelineパイプ機の使用と原理


機械を使って勉強する時、よくデータに対して規範化の処理を行う必要があって、すべてのステップはすべて実行しなければならなくて、前のステップの実行したデータは次のステップの実行データに伝達して、すべてのステップの生成したデータは1つの変数で記憶する必要があって、このように面倒なことが多くて、幸いなことに、pythonはpiplineパイプのメカニズムがあります
Pipelineパイプ機構
Pipelineパイプラインメカニズムは、その名の通り、水道管のように、データは水のように、パイプラインの間を流れ、Piplineの各ステップは1つの節水管を、データはこの節水管を介して次の節水管に残り、次の節水管に流れるのは前の節水管を介して処理されたデータである.
Piplineの使い方
Pipelineパイプライン作業は、ステップごとに('名前',ステップ)で表されます.例:
from sklearn.pipeline import Pipeline    #   sklearn  Pipeline
from sklearn.preprocessing import StandardScaler   #        ,     0,   1   
from sklearn.decomposition import PCA  
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
data = load_iris()
y = data.target
x = data.data
train_x, test_x, train_y, test_y = train_test_split(x,y, test_size=0.30, stratify = y)
pipeline = Pipeline([
    ('scaler', StandardScaler()),
    ('pca', PCA()),
    ('randomforestclassifier', RandomForestClassifier())
])
pipeline.fit(data.data,data.target)
print(pipeline.score(test_x,test_y))

#   
0.9777777777777777

注意点
  • 最後のtansformを除いて、残りのtransformはfit_を実現しなければならない.transform関数
  • transformクラスをカスタマイズする場合はfit_を実装する必要がありますtransform関数、fit_Transformは次のtransformのパラメータ
  • です.
  • ステップ毎のtransformが返す値はnumpyのarray形式データ
  • である.