제로베이스 20220525 파이프라인 TIL
파이프라인
-
데이터 전처리, 하이퍼파라미터 튜닝등 머신러닝 과정에 발생하는 일련의 과정을 공정화 시키는것이라 생각하면 될듯 하다.
-
강의에서는 sklearn에 포함된 Pipeline을 사용했다.
- 별도로 조사해보니 kubeflow등의 라이브러리도 존재한다고 하는데, kubeflow는 쿠버네티스/도커 환경에서 작동하도록 만든거라고 하니 일단은 그런게 있다 정도로만 하고 넘어가기로 했다.
-
예를들어 Scaler 작업 이후 Classifier로 분류를 거치고 싶을때, 다음과 같이 사용할수 있다.
from sklearn.pipeline import Pipeline from sklearn.tree import DecisionTreeClassifier from sklearn.preprocessing import StandardScaler estimators = [('scaler',StandardScaler()),('clf',DecisionTreeClassifier())] pipe = Pipeline(estimators)
-
이런식으로 파이프라인을 선언해둘 경우, 다른 머신러닝 작업에 대해서도 별도의 코드를 짤 필요 없이 파이프라인을 호출하는것으로 해당 공정을 수행할수 있다.
파이프라인 세부 기능
# 파이프라인의 각 단계를 출력함.
pipe.steps
# 이런식으로 파이프라인의 n번째 단계를 호출할수도 있음.
pipe.steps[0]
# 또는 지정해둔 이름을 통해 바로 해당 공정을 호출할수도 있음.
pipe['scaler']
# 각 공정에 들어가는 파라미터를 지정한다.
# 이때, 스탭이름 + 언더바 두개 + 속성이름 으로 지정할 파라미터를 선택한다.
pipe.set_params(clf__max_depth=2)
pipe.set_params(clf__random_state=13)
파이프라인 사용
X_tran, X_test,y_train,y_test = test_train_split(x,y,test_size=0.2,random_state=13,stratify=y)
pipe.fit(X_train,y_train)