Machine Learning/파이썬_데이터사이언스
6. Pipelines [파이썬으로 배우는 데이터 사이언스]
Pipelines |
Contents:
1. 파이프라인 이란?
2. Data Preparation
3. Feature Extraction
1. 파이프라인 이란?
- workflow를 자동화 시킬 수 있다.
- data leakage 문제를 최소화 시킬 수 있다.
- 선형적 순서로 데이터를 transform 하고 모델 트레이닝 및 평가 까지 파이프라인으로 가능하다.
2. Data Preparation
- normalization / standardization등을 통하여 트레이닝 데이터를 가꿈 으로서 더 좋은 모델을 만들 수 있는 계기가 될 수 있다.
- cross-validation같은 경우 각 fold 마다 이러한(normalization/standardization등) 테크닉을 쓴 이후에 다른 fold에 트레이닝을 해야 한다. 보통 트레이닝 데이터를 한번에 데이터 변환 테크닉을 사용하여 실수하는 일이 많은데, 파이프라인을 통하여 이러한 문제를 해결 할 수 있다.
from sklearn.model_selection import KFold,cross_val_score
from sklearn.discriminant_analysis import LinearDiscriminantAnalysis
from sklearn.preprocessing import StandardScaler
from sklearn.pipeline import Pipeline
#create pipeline
estimators=[]
estimators.append(("standardize', StandardScaler()))
estimators.append(("lda', LinearDiscriminantAnalysis()))
model=Pipeline(estimators)
#evaluate pipeline
kfold=KFold(n_splits=10,random_split=6)
results=cross_val_score(model,X,y,cv=kfold)
print(results.mean())
3. Feature Extraction
- data preparation과 마찬가지로 data leakage 문제를 가질 수 있다.
- pipleline의 FeatureUnion 을 통하여 많은 feature selection / extraction 의 결과들을 모델에 트레이닝 할 수 있도록 하나의 큰 데이터셋으로 합친다.
- k-fold 에 대하여, feature extraction과 feature union은 각각의 fold에 대해 독립적으로 처리해야 한다.(data preparation과 마찬가지로.)
from sklearn.model_selection import KFold, cross_val_score
from sklearn.pipeline import Pipeline, FeatureUnion
from sklearn.linear_model import LogisticRegression
from sklearn.decomposition import PCA
from sklearn.feature_selection import SelectKBest
#create feature union
features=[]
features.append(('pca',PCA(n_components=3)))
features.append(('select_best',SelectKBest(k=6)))
feature_union=FeatureUnion(features)
#create pipeline
estimators=[]
estimators.append(("feature_union', feature_union))
estimators.append(("logistic',LogisticRegression(solver='liblinear')))
model=Pipeline(estimators)
#evaluate pipeline
kfold=KFold(n_splits=10,random_split=6)
results=cross_val_score(model,X,y,cv=kfold)
print(results.mean())
data-learning.tistory.com
* 해당 게시물은 첫번째 배너 및 출처를 첨부하면 상업적 용도를 제외하고 사용하실수 있습니다.
'Machine Learning > 파이썬_데이터사이언스' 카테고리의 다른 글
8. Parameter Tuning [파이썬으로 배우는 데이터 사이언스] (0) | 2020.02.08 |
---|---|
7. Ensembles [파이썬으로 배우는 데이터 사이언스] (0) | 2020.02.06 |
5. Spot-Check Classification Algorithm [파이썬으로 배우는 데이터 사이언스] (0) | 2020.02.03 |
4. 머신러닝 모델 평가 [파이썬으로 배우는 데이터 사이언스] (0) | 2020.01.31 |
3. Feature Selection [파이썬으로 배우는 데이터 사이언스] (0) | 2020.01.30 |
댓글