← 개념서태블릿/PC 버전
3과목 · 빅데이터 모델링·7

앙상블 분석

앙상블의 원리, 배깅과 부스팅의 차이, 랜덤포레스트와 OOB, AdaBoost·GBM·XGBoost, 보팅과 스태킹을 다룹니다.

앙상블의 원리

여러 개의 약한 학습기(weak learner) 를 결합해 하나의 강한 예측 모형을 만드는 기법입니다. 단일 모형보다 예측 정확도가 높고 과대적합에 강하지만, 해석력이 떨어집니다.

앙상블이 효과를 내는 조건은 개별 모형이 서로 달라야(다양성) 한다는 것입니다. 똑같은 모형을 100개 모아도 성능은 그대로입니다.

결합 방식 내용
다수결(Hard voting) 분류 — 가장 많은 표를 받은 클래스
확률 평균(Soft voting) 분류 — 각 모형의 예측 확률을 평균해 가장 큰 클래스
평균 회귀 — 예측값의 (가중)평균

앙상블의 단점으로 "모형이 복잡해져 해석이 어렵다"가 자주 정답이 됩니다. 정확도가 낮아진다는 서술은 오답입니다.

배깅 (Bagging, Bootstrap Aggregating)

  1. 원 데이터에서 복원추출(부트스트랩) 로 크기 n의 표본을 B개 만든다
  2. 각 표본으로 모형을 독립적·병렬로 학습한다
  3. 결과를 투표(분류) 또는 평균(회귀) 으로 결합한다
  • 분산(variance)을 줄이는 기법 → 의사결정나무처럼 불안정한 모형에 특히 효과적
  • 각 모형이 독립이므로 병렬 처리 가능
  • OOB(Out-Of-Bag): 부트스트랩 표본에 한 번도 뽑히지 않은 관측치. 확률적으로 약 36.8% ((1 - 1/n)ⁿ → e⁻¹ ≈ 0.368) 가 남고, 이들로 별도의 검증 데이터 없이 성능(OOB error)을 추정할 수 있습니다

OOB 비율 약 36.8%(= 1/e) 는 계산 문제로도 나옵니다. 반대로 표본에 포함되는 비율은 약 63.2% 입니다.

부스팅 (Boosting)

  1. 첫 모형을 학습한다
  2. 오분류된(예측이 틀린) 관측치에 가중치를 높여 다음 모형을 학습한다
  3. 이를 순차적으로 반복하고, 모형들에 성능 기반 가중치를 주어 결합한다
  • 편향(bias)을 줄이는 기법 → 약한 학습기를 점점 강하게 만듦
  • 이전 모형의 결과가 다음 학습에 필요하므로 병렬 처리 불가(순차적)
  • 일반적으로 배깅보다 정확도가 높지만, 잡음·이상값이 많으면 그것까지 학습해 과대적합 위험이 큼

배깅 vs 부스팅 — 최다 출제 비교표

구분 배깅 부스팅
표본 추출 복원추출로 독립적 표본 이전 결과에 따라 가중치 조정
학습 방식 병렬(동시) 순차(직렬)
가중치 모든 관측치·모형이 동등 오분류 관측치와 우수 모형에 가중
주로 줄이는 것 분산 편향
과대적합 상대적으로 강건 상대적으로 취약(이상값에 민감)
속도 빠름(병렬) 느림
대표 기법 랜덤포레스트 AdaBoost, GBM, XGBoost, LightGBM

두 줄만 확실히 기억하면 됩니다. 배깅 = 병렬 + 분산 감소 + 동등 가중, 부스팅 = 순차 + 편향 감소 + 오분류 가중. "배깅은 순차적으로 학습한다", "부스팅은 각 모형이 독립이다"는 전형적 오답입니다.

랜덤 포레스트

배깅 + 변수 무작위 선택을 결합한, 의사결정나무 기반 앙상블입니다.

이중 무작위성 내용
관측치 무작위 부트스트랩으로 나무마다 다른 훈련 표본
변수 무작위 노드 분리 시 전체 p개 변수 중 일부(m개)만 후보로 사용
  • 변수 후보 수는 보통 분류에서 √p, 회귀에서 p/3 정도를 씁니다
  • 변수를 제한하는 이유는 나무들 간의 상관을 낮춰(탈상관화) 다양성을 확보하기 위함입니다
  • 가지치기를 하지 않고 나무를 깊게 키운 뒤 평균으로 분산을 줄입니다
  • 변수 중요도를 지니 감소량 또는 OOB 순열 중요도로 계산할 수 있습니다
  • 결측치·이상값에 비교적 강건하고 스케일링이 필요 없습니다

랜덤포레스트가 단순 배깅과 다른 결정적 한 가지분리할 때마다 변수를 무작위로 일부만 고른다는 점입니다. 이 문장이 그대로 정답 선택지로 나옵니다. 나무 수를 늘려도 과대적합이 심해지지 않는다는 점도 특징입니다.

대표적 부스팅 계열

기법 핵심
AdaBoost 오분류된 관측치의 가중치를 높이며 약한 학습기(주로 얕은 나무, stump)를 순차 결합. 각 학습기에 성능 기반 가중치 부여
GBM (Gradient Boosting) 이전 모형의 잔차(residual) 를 새 모형이 학습. 손실함수의 경사하강으로 일반화
XGBoost GBM에 정규화 항(L1·L2), 병렬화, 결측치 자동 처리, 조기 종료를 더해 속도·성능 개선
LightGBM 리프 중심(leaf-wise) 성장으로 대용량에서 더 빠름
CatBoost 범주형 변수 처리에 특화

AdaBoost는 가중치를 조정, GBM은 잔차를 학습한다는 구분이 핵심입니다. 부스팅의 학습률(learning rate)은 작게 하고 나무 수를 늘리는 것이 일반적이며, 학습률이 너무 크면 발산·과대적합합니다.

보팅과 스태킹

기법 내용
보팅(Voting) 서로 다른 종류의 알고리즘(로지스틱 회귀 + SVM + 나무 등)의 예측을 투표·평균으로 결합
스태킹(Stacking) 여러 기초 모형(base learner)의 예측값을 새로운 입력변수로 삼아 상위 모형(meta learner)을 학습

스태킹은 강력하지만, 기초 모형의 예측을 그대로 메타 학습에 쓰면 정보가 누출되므로 교차검증 기반으로 예측값을 생성해야 합니다.

배깅은 같은 알고리즘 + 다른 데이터, 보팅은 다른 알고리즘 + 같은 데이터입니다. 이 대비가 자주 출제됩니다. 스태킹은 "모형의 출력을 다시 입력으로 쓰는 2단계 구조"로 기억합니다.

앙상블 기법 총정리

기법 계열 학습 특징
배깅 병렬 독립 분산 감소, OOB
랜덤포레스트 병렬 독립 배깅 + 변수 무작위
AdaBoost 순차 의존 오분류 가중치
GBM/XGBoost 순차 의존 잔차 학습, 정규화
보팅 병렬 독립 이종 모형 결합
스태킹 2단계 계층 메타 모형 학습