-
Pipeline파이썬, Python/[AI] 인공지능 - 머신러닝, ML 2020. 2. 4. 21:41728x90
Pipeline을 왜 하는가?
1. 여러 전처리 과정들을 한번에 끝내준다.
2. Training Data 를 전처리하고 모델을 Fitting 시키는데 1줄이면 끝남.
- 없을 경우, Imputation > One-hot encoding > Model Training ...
3. 전처리되지 않은 valid의 feature 를 predict() 커맨드에 사용하면
pipeline이 자동적으로 feature 들을 예측 전에 알아서 전처리해줌
Step 1. 전처리 단계 정의
from sklearn.compose import columnTransformer from sklearn.pipeline import Pipeline from sklearn.impute import SimpleImputer from sklearn.preprocessing import OneHotEncoder # 1. 숫자 Data 전처리 num_transformer = SimpleImputer(strategy = 'constant') # mean, median, most_frequent가능 # 2. 카테고리 Data 전처리 cat_transformer = Pipeline(steps =[ ('imputer', SimpleImputer(Strategy = 'most_frequent'), ('onehot', OneHotEncoder(handle_unknown = 'ignore')) ]) # 3. 절차들을 묶는다 preprocessor = ColumnTransformer( transformer = [ ('num', num_transformer, numerical_cols), ('cat', cat_transformer, categorical_cols) ])
Step 2. 모델 정의
from sklearn.ensemble import RandomForestRegressor model = RandomForestRegressor(n_estimators=100, random_state=0)
Step 3. Pipeline 생성 및 모델평가
from sklearn.metrics import mean_absolute_error my_pipeline = Pipeline(steps=[('preprocessor', preprocessor), ('model', model) ]) my_pipeline.fit(X_train, y_train) # 데이터 전처리 및 모델 fit preds = my_pipeline.predict(X_valid) # validation data 전처리 및 예측 score = mean_absolute_error(y_valid, preds)
반응형'파이썬, Python > [AI] 인공지능 - 머신러닝, ML' 카테고리의 다른 글
Keras custom loss 만들기 (0) 2020.08.06 [Machine Learning] 모델 과적합(overfitting) 확인 (0) 2020.07.07 [Machine Learning] Deep Learning for anomaly detection(survey)_1편 (0) 2020.05.30 [Python] 웹크롤링 Tool (0) 2020.04.24 [전처리, Preprocessing] 결측값 처리_1(열 삭제) (0) 2020.02.02