3과목 · 데이터 분석·9장
앙상블
앙상블 학습의 원리, 배깅·부스팅·스태킹, 랜덤 포레스트, AdaBoost·GBM·XGBoost의 차이를 정리합니다.
1. 앙상블이란
앙상블(Ensemble) 은 여러 모델의 예측을 결합해 단일 모델보다 나은 성능을 얻는 기법.
- 약한 학습기(weak learner)의 집합으로 강한 학습기 구성
- 편향·분산 둘 다 개선 가능
2. 앙상블 3가지 유형
| 유형 | 방식 | 대표 |
|---|---|---|
| 배깅(Bagging) | 병렬, 데이터 샘플링 | 랜덤 포레스트 |
| 부스팅(Boosting) | 순차, 오류에 가중 | AdaBoost, GBM, XGBoost |
| 스태킹(Stacking) | 다른 모델 결과를 메타 학습 | Blending |
3. 배깅 (Bootstrap Aggregating)
3-1. 과정
- 원본에서 부트스트랩 샘플(복원추출) 생성
- 각 샘플에 모델 학습
- 결과 결합(투표·평균)
3-2. 효과
- 분산 감소
- 과적합 잘 잡힘
- 병렬 처리 가능
3-3. 랜덤 포레스트(Random Forest)
- 배깅 + 특성 무작위 선택
- 각 트리 분할 시 일부 특성만 사용
- 트리 간 상관 낮춤 → 더 강한 앙상블
- 변수 중요도 제공
4. 부스팅
4-1. 개념
- 순차적으로 학습기 추가
- 이전 학습기의 오류에 가중치 증가
- 편향·분산 둘 다 개선
4-2. AdaBoost
- 오분류된 샘플에 가중치 증가
- 약한 학습기(깊이 1 트리, stump) 중심
4-3. GBM(Gradient Boosting Machine)
- 잔차(gradient) 를 따라 모델 추가
- 손실함수 최적화
- 회귀·분류 모두 가능
4-4. XGBoost / LightGBM / CatBoost
| 알고리즘 | 특징 |
|---|---|
| XGBoost | 정규화·병렬·결측 처리, 대회 1위 단골 |
| LightGBM | 리프 우선(leaf-wise), 빠름, 큰 데이터 |
| CatBoost | 범주형 특성 자동 처리 |
5. 스태킹
[Base Models] → 각자 예측 → [Meta Model] → 최종 예측
- 이질적 모델 결합(랜덤포레스트 + 로지스틱 + KNN)
- 데이터 누수 방지 위해 교차검증 사용
6. 배깅 vs 부스팅 비교
| 축 | 배깅 | 부스팅 |
|---|---|---|
| 방식 | 병렬 | 순차 |
| 샘플링 | 독립 부트스트랩 | 가중치 업데이트 |
| 초점 | 분산 감소 | 편향 감소 |
| 속도 | 빠름 | 상대적 느림 |
| 과적합 | 적음 | 주의 필요 |
7. 변수 중요도 해석
7-1. 랜덤 포레스트
- 분할 시 지니 감소 합
- Permutation Importance: 값 섞어서 성능 감소 관찰
7-2. SHAP 값
- 각 특성의 기여도를 게임이론적으로 분해
- 전역·지역 해석
8. 하이퍼파라미터 팁
랜덤 포레스트
- n_estimators: 100~500
- max_features: sqrt(분류), 1/3(회귀)
- max_depth: None(기본) + min_samples_leaf
XGBoost
- learning_rate: 0.01~0.3
- max_depth: 3~8
- n_estimators + early_stopping
9. 실제 예
from sklearn.ensemble import RandomForestClassifier
rf = RandomForestClassifier(n_estimators=300, max_depth=10)
rf.fit(X_train, y_train)
from xgboost import XGBClassifier
xgb = XGBClassifier(n_estimators=500, learning_rate=0.05, max_depth=6)
xgb.fit(X_train, y_train, eval_set=[(X_val, y_val)], early_stopping_rounds=20)
10. 출제 포인트
- 배깅·부스팅·스태킹 차이
- 랜덤 포레스트가 배깅 + 특성 샘플링인 이유
- AdaBoost vs GBM
- XGBoost·LightGBM 특징
- 변수 중요도 해석
요약 체크리스트
- 앙상블 3유형을 구분
- 배깅 vs 부스팅 비교표
- 랜덤 포레스트 핵심 아이디어
- 부스팅 알고리즘 3종(AdaBoost/GBM/XGBoost) 이름