머신러닝을 할 때 보통 데이터 전처리를 하게 되는데, 전처리와 모델 fit과정을 pipeline을 통해 한 번에 진행할 수 있다. 즉, 데이터의 연속된 변환을 순차적으로 적용 및 학습을 할 수 있다.
pipeline은 특히 PCA나 One-hot encoding과 같이, train set 정보를 기억해서 test set에 적용해야 할 때 유용하다.
# pipeline
from sklearn.pipeline import Pipeline
# encoder
from sklearn.preprocessing import StandardScaler
# machine learning models
from sklearn.tree import DecisionTreeClassifier
# metrics
#사실 StandardScaler는 DecisionTree에 별 영향을 미치지 않음
pipe = Pipeline([('scaling',StandardScaler()),
('model',DecisionTreeClassifier())])
pipe.fit(X_train,y_train)
pred = pipe.predict(X_test)
accuracy = accuracy_score(y_test,pred)
f1 = f1_score(y_test,pred)
print(f"f1:{f1:4f} accuracy:{accuracy:.4f}")