앙상블 학습 정리: 보팅, 배깅, 부스팅, 스태킹
머신러닝에서 앙상블 학습(Ensemble Learning)은 여러 개의 개별 모델을 결합해 하나의 강력한 모델을 만드는 기법입니다.
주요 목적은 예측 성능 향상과 과적합(overfitting) 완화입니다.
앙상블은 크게 보팅(Voting), 배깅(Bagging), 부스팅(Boosting), 스태킹(Stacking) 네 가지로 나눌 수 있습니다.
1. 보팅 (Voting)
여러 모델의 예측을 단순 취합해 최종 결과를 정합니다. 주로 분류 문제에서 사용됩니다.
하드 보팅 (Hard Voting)
- 각 모델의 클래스 예측값으로 다수결
- 예:
[1, 1, 0]이면 최종1
소프트 보팅 (Soft Voting)
- 각 모델의 클래스 확률을 평균
- 평균 확률이 가장 높은 클래스를 선택
특징:
- 서로 다른 알고리즘(로지스틱 회귀, 결정 트리, KNN 등) 조합 가능
- 구현이 단순하고 baseline 향상에 유용
2. 배깅 (Bagging, Bootstrap Aggregating)
부트스트랩 샘플링과 예측 집계를 결합한 방식입니다.
특징:
- 원본 데이터에서 중복 허용 샘플링으로 여러 학습셋 생성
- 개별 모델(주로 트리)을 병렬 학습
- 분류는 다수결, 회귀는 평균으로 최종 예측
대표 모델:
- Random Forest
장점:
- 과적합 완화
- 예측 안정성 향상
3. 부스팅 (Boosting)
약한 학습기를 순차적으로 학습시켜 점진적으로 강한 모델을 만드는 방식입니다.
특징:
- 이전 모델의 오차(오분류/잔차)에 다음 모델이 집중
- 잘못 맞춘 샘플을 보완하며 성능 개선
- 보통 얕은 트리를 약한 학습기로 사용
대표 모델:
- AdaBoost
- Gradient Boosting
- XGBoost
- LightGBM
- CatBoost
장점:
- 높은 예측 성능
- 복잡한 패턴 학습에 강함
4. 스태킹 (Stacking, Stacked Generalization)
여러 모델의 예측 결과를 다시 입력으로 써서 메타 모델이 최종 예측을 학습하는 방식입니다.
특징:
- 1차 모델(Base Learner)들의 출력 → 2차 모델(Meta Learner) 입력
- 서로 다른 알고리즘 조합 가능
- 복합 패턴 학습에 유리
장점:
- 높은 성능 가능성
단점:
- 구조 복잡
- 학습 시간 증가
- 설정에 따라 과적합 가능성
정리
앙상블은 단일 모델의 한계를 보완하는 강력한 도구입니다.
- 빠르고 단순한 결합: Voting
- 안정성 강화: Bagging
- 성능 극대화: Boosting
- 모델 조합 최적화: Stacking
데이터 특성, 계산 자원, 운영 요구사항에 맞춰 적절한 방식을 선택하는 것이 중요합니다.