728x90
반응형
Stacking
: 다른 여러 모델로 예측한 예측값들을 누적시켜 최종 모델의 인풋으로 사용해서 예측에 사용하는 방식
- Stacking 모델 불러오기
from sklearn.ensemble import StackingClassifier
- 모델 선언
estimators : stacking에 사용될 베이스 모델들을 지정해준다. 각 모델 이름(문자열)과 모델 인스턴스로 구성된 튜플 형식의 리스트로 지정해준다.
final_estimator : 최종적으로 예측에 사용할 모델을 지정해준다. (디폴트 : LogisticRegression)
# 모델 선언
estimators = [('lr', LogisticRegression()),
('dt', DecisionTreeClassifier()),
('knn', make_pipeline(StandardScaler(), KNeighborsClassifier())),
('rf', RandomForestClassifier()),
('xgb', XGBClassifier())]
model_stacking = StackingClassifier(estimators=estimators
, final_estimator= RandomForestClassifier())
- 모델 학습 & 예측
학습, 예측 코드는 다른 모델과 동일하다.
model_stacking.fit(x_train, y_train)
pred = model_stacking.predict(x_test)
- stacking에 사용된 estimator 모델들 확인 model.named_estimators_
model_stacking.named_estimators_
# {'lr': LogisticRegression(),
# 'dt': DecisionTreeClassifier(),
# 'knn': Pipeline(steps=[('standardscaler', StandardScaler()),
# ('kneighborsclassifier', KNeighborsClassifier())]),
# 'rf': RandomForestClassifier(),
# 'xgb': XGBClassifier(base_score=0.5, booster='gbtree', callbacks=None,
# colsample_bylevel=1, colsample_bynode=1, colsample_bytree=1,
# early_stopping_rounds=None, enable_categorical=False,
# eval_metric=None, gamma=0, gpu_id=-1, grow_policy='depthwise',
# importance_type=None, interaction_constraints='',
# learning_rate=0.300000012, max_bin=256, max_cat_to_onehot=4,
# max_delta_step=0, max_depth=6, max_leaves=0, min_child_weight=1,
# missing=nan, monotone_constraints='()', n_estimators=100,
# n_jobs=0, num_parallel_tree=1, objective='multi:softprob',
# predictor='auto', random_state=0, reg_alpha=0, ...)}
named_estimators_ 는 딕셔너리 형식으로 결과를 반환해주기 때문에 키값으로 내부 모델 중 하나를 뽑아서 사용할 수 있다.
# 내부 모델 중 하나를 뽑아서 사용
model_stacking.named_estimators_['dt']
https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.StackingClassifier.html
sklearn.ensemble.StackingClassifier
Examples using sklearn.ensemble.StackingClassifier: Release Highlights for scikit-learn 0.22 Release Highlights for scikit-learn 0.22
scikit-learn.org
728x90
반응형
'인공지능 AI' 카테고리의 다른 글
[ LightGBM ] (0) | 2022.09.11 |
---|---|
[ 정규화 : RobustScaler ] (0) | 2022.09.10 |
[ Class Imbalance (클래스 불균형) ] (0) | 2022.09.10 |
[ 분류를 위한 기준 (Cut-off Value) ] (0) | 2022.09.10 |
[MAC] Google Colab(구글 코랩) 런타임 연결 끊김 방지하기 (0) | 2022.05.26 |