728x90
반응형
Scikit-Learn(sklearn) Pipeline
데이터 전처리에서 학습까지의 과정을 하나로 연결해주는 것
Scikit-learn 파이프라인을 사용하면 데이터 전처리 및 학습의 모든 단계를 포함하는 단일 개체를 만들 수 있다.
파이프라인에 작업(변수 선택, 표준화, 모형 클래스 등)을 등록만 해주면 기존 과정을 한 번에 처리할 수 있다.
- train과 test 데이터 손실을 피할 수 있다
- 교차검증 및 기타 모델 선택 유형을 쉽게 만든다.
- 재현성이 증가한다.
Pipeline
작업명, 작업 클래스 두 개로 이루어진 튜플을 리스트로 담아서 전달
Pipeline(['작업명1', 작업 클래스 1), ('작업명2', 작업 클래스 2),...])
from sklearn.feature_selection import SelectKBest, f_classif
from sklearn.pipeline import Pipeline, make_pipeline
from sklearn.preprocessing import StandardScaler
from sklearn.tree import DecisionTreeClassifier
from sklearn.datasets import load_iris
iris = load_iris()
X = iris.data
y = iris.target
pipeline = Pipeline(['Feature_Selection', SelectKBest(f_classif, k=2)),
('Standardization', StandardScaler()),
('Decision_Tree', DecisionTreeClassifier(max_depth=3))])
pipeline.fit(X, y) ## 모형 학습
print(pipeline.predict(X)[:3]) ## 예측
print(pipeline.score(X, y)) ## 성능 평가
make_pipeline
작업 클래스만 차례대로 넣어주면 작업명은 자동으로 생성해준다.
pipeline = make_pipeline(SelectKBest(f_classif, k=2),
StandardScaler(),
DecisionTreeClassifier(max_depth=3))
References
728x90
반응형
'Machine Learning > Scikit-Learn' 카테고리의 다른 글
[Machine Learning] Scikit-Learn (0) | 2021.03.10 |
---|