← 일백제ADsP 개념서
3과목 · 데이터 분석·9장

앙상블

앙상블 학습의 원리, 배깅·부스팅·스태킹, 랜덤 포레스트, AdaBoost·GBM·XGBoost의 차이를 정리합니다.

1. 앙상블이란

앙상블(Ensemble) 은 여러 모델의 예측을 결합해 단일 모델보다 나은 성능을 얻는 기법.

  • 약한 학습기(weak learner)의 집합으로 강한 학습기 구성
  • 편향·분산 둘 다 개선 가능

2. 앙상블 3가지 유형

유형 방식 대표
배깅(Bagging) 병렬, 데이터 샘플링 랜덤 포레스트
부스팅(Boosting) 순차, 오류에 가중 AdaBoost, GBM, XGBoost
스태킹(Stacking) 다른 모델 결과를 메타 학습 Blending

3. 배깅 (Bootstrap Aggregating)

3-1. 과정

  1. 원본에서 부트스트랩 샘플(복원추출) 생성
  2. 각 샘플에 모델 학습
  3. 결과 결합(투표·평균)

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) 이름