머신러닝에서 앙상블 학습(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

데이터 특성, 계산 자원, 운영 요구사항에 맞춰 적절한 방식을 선택하는 것이 중요합니다.