Notice
Recent Posts
Recent Comments
Link
라일락 꽃이 피는 날
[Sklearn] 앙상블 (Ensemble) - Stacking, Weighted Blending 본문
728x90
Stacking
개별 모델이 예측한 데이터를 기반으로 final_estimator 종합하여 예측을 수행한다.
성능을 극으로 끌어올릴 때 활용하기도 한다.
데이터셋이 적은 경우, 과대적합을 유발할 수 있다.
from sklearn.ensemble import StackingRegressor
stack_models = [
('elasticnet', poly_pipeline),
('randomforest', rfr),
('gbr', gbr),
('lgbm', lgbm)
]
stack_reg = StackingRegressor(stack_models, final_estimator=xgb, n_jobs=-1)
stack_reg.fit(x_train, y_train)
stack_pred = stack_reg.predict(x_test)

Weighted Blending
각 모델의 예측값에 대하여 weight를 곱하여 최종 output을 계산한다.
모델에 대한 가중치를 조절하여 최종 output을 산출한다.
가중치의 합은 1.0이 되도록 한다.
final_outputs = {
'elasticnet' : poly_pred,
'randomforest' : rfr_pred,
'gbr' : gbr_pred,
'xgb' : xgb_pred,
'lgbm' : lgbm_pred,
'stacking' : stack_pred
}
final_prediction=\
final_outputs['elasticnet'] * 0.1\
+final_outputs['randomforest'] * 0.1\
+final_outputs['gbr'] * 0.2\
+final_outputs['xgb'] * 0.2\
+final_outputs['lgbm'] * 0.2\
+final_outputs['stacking'] * 0.2\

728x90
'데이터 분석 > Python' 카테고리의 다른 글
| [Sklearn] Hyperparameter 튜닝 (0) | 2021.05.17 |
|---|---|
| [Sklearn] Cross Validation (0) | 2021.05.17 |
| [Sklearn] 앙상블 (Ensemble) - 부스팅 (Boosting) (0) | 2021.05.17 |
| [Sklearn] 앙상블 (Ensemble) - 보팅 (Voting), 배깅 (Bagging) (0) | 2021.05.17 |
| [Sklearn] 파이프라인 (pipeline) (0) | 2021.05.14 |