1. 앙상블 학습이란?

여러 개의 약한 학습기(Weak Learner)를 결합하여 더 강력한 모델을 만드는 기법

핵심 아이디어: “집단 지성”

  • 한 명의 전문가보다 여러 전문가의 의견을 종합하면 더 정확
  • 개별 모델의 약점을 서로 보완
  • 과적합 위험 감소

앙상블의 조건

  1. 다양성(Diversity): 각 모델이 서로 다른 오류를 만들어야 함
  2. 독립성(Independence): 모델들이 독립적으로 학습되어야 함
  3. 성능(Accuracy): 각 모델이 랜덤 추측보다는 나아야 함

2. 앙상블 학습의 주요 방법론

배깅 (Bagging - Bootstrap Aggregating)

같은 알고리즘을 여러 번 학습시키되, 각각 다른 데이터 샘플로 학습

동작 원리

  1. 부트스트랩 샘플링: 원본 데이터에서 중복을 허용하여 여러 개의 샘플 생성
  2. 병렬 학습: 각 샘플로 독립적으로 모델 학습
  3. 집계: 모든 모델의 예측을 평균(회귀) 또는 투표(분류)로 결합

특징

  • 분산(Variance) 감소에 효과적
  • 과적합 방지
  • 병렬 처리 가능

부스팅 (Boosting)

약한 학습기를 순차적으로 학습시키며, 이전 모델의 오류를 다음 모델이 보완

동작 원리

  1. 순차적 학습: 모델을 하나씩 차례대로 학습
  2. 오류 집중: 이전 모델이 틀린 데이터에 가중치 부여
  3. 가중 결합: 각 모델의 성능에 따라 가중치를 두고 결합

특징

  • 편향(Bias) 감소에 효과적
  • 높은 정확도
  • 순차적 처리 필요

스태킹 (Stacking)

여러 다른 종류의 모델을 학습시킨 후, 이들의 예측을 입력으로 받는 메타 모델을 학습

동작 원리

  1. 1단계: 다양한 기본 모델들(Base Models) 학습
  2. 2단계: 기본 모델들의 예측을 특징으로 사용하여 메타 모델(Meta Model) 학습

특징

  • 다양한 모델의 장점 결합
  • 복잡도가 높음
  • 과적합 위험 존재

3. 랜덤 포레스트 (Random Forest)

의사결정나무를 기반으로 한 배깅 앙상블

핵심 메커니즘

1. 부트스트랩 샘플링

원본 데이터에서 중복을 허용하여 N개의 서브셋 생성

2. 랜덤 특징 선택

각 노드에서 분할할 때, 전체 특징 중 무작위로 일부만 선택

  • 일반적으로 개의 특징 사용
  • 트리 간의 상관관계 감소 → 다양성 증가

3. 예측 집계

  • 분류: 다수결 투표 (Majority Voting)
  • 회귀: 평균 (Averaging)

수학적 표현

분류

회귀

  • : t번째 트리의 예측
  • : 전체 트리 개수

하이퍼파라미터

파라미터설명일반적 값
n_estimators트리 개수100-500
max_depth트리 최대 깊이10-30
max_features노드 분할시 고려할 특징 수sqrt(n) 또는 log2(n)
min_samples_split노드 분할 최소 샘플 수2-10
min_samples_leaf리프 노드 최소 샘플 수1-5

특징 중요도 (Feature Importance)

각 특징이 모델 예측에 얼마나 기여하는지 측정

  • 각 트리에서 해당 특징으로 분할했을 때의 불순도 감소량 평균

장단점

장점

  • 과적합에 강함
  • 특징 스케일링 불필요
  • 결측치 처리 가능
  • 특징 중요도 제공
  • 노이즈와 이상치에 강건

단점

  • 해석력이 떨어짐
  • 메모리 사용량이 큼
  • 학습과 예측이 느릴 수 있음
  • 외삽(Extrapolation) 불가능

4. 그래디언트 부스팅 (Gradient Boosting)

손실 함수의 그래디언트 방향으로 약한 학습기를 순차적으로 추가하는 부스팅 기법

핵심 아이디어

“잔차(Residual)를 학습하기”

  1. 초기 모델로 예측
  2. 실제값과 예측값의 차이(잔차) 계산
  3. 잔차를 타겟으로 새로운 모델 학습
  4. 새 모델을 앙상블에 추가
  5. 2-4 반복

알고리즘

초기화

반복 (m = 1 to M):

  1. 잔차 계산

  2. 잔차에 대한 트리 학습

  3. 모델 업데이트

    • : 학습률 (learning rate)

최종 모델

주요 하이퍼파라미터

파라미터설명효과
n_estimators트리 개수많을수록 성능 향상 (과적합 위험)
learning_rate학습률작을수록 안정적 (더 많은 트리 필요)
max_depth트리 깊이깊을수록 복잡 (보통 3-5)
subsample샘플링 비율1.0보다 작으면 확률적 그래디언트 부스팅
min_samples_split분할 최소 샘플클수록 단순

정규화 기법

1. Shrinkage (학습률)

  • 각 트리의 기여를 줄여 과적합 방지
  • 가 작을수록 더 많은 트리 필요

2. Subsampling

각 반복마다 데이터의 일부만 사용

  • Stochastic Gradient Boosting
  • 과적합 감소, 학습 속도 향상

3. Early Stopping

검증 손실이 개선되지 않으면 학습 조기 종료


5. XGBoost (eXtreme Gradient Boosting)

그래디언트 부스팅의 최적화된 구현으로, 속도와 성능이 크게 개선된 라이브러리

주요 개선사항

1. 정규화된 목적 함수

  • : 손실 함수
  • : 정규화 항
  • : 리프 노드 개수
  • : 리프 노드의 가중치

2. 2차 테일러 근사

손실 함수를 2차까지 근사하여 더 정확한 최적화

  • : 1차 기울기
  • : 2차 기울기

3. 효율적인 분할 알고리즘

  • Weighted Quantile Sketch
  • Sparsity-aware Split Finding (결측치 처리)

4. 병렬 처리

  • 트리 구축시 특징별 병렬 처리
  • 캐시 최적화

고유 기능

1. 결측치 자동 처리

각 분할에서 결측치를 왼쪽 또는 오른쪽으로 보내면서 최적 방향 학습

2. 내장 교차 검증

학습 중 교차 검증 수행 가능

3. 조기 종료

검증 세트 성능 모니터링하며 자동 종료

주요 하이퍼파라미터

트리 관련

파라미터설명권장값
max_depth트리 최대 깊이3-10
min_child_weight리프 노드 최소 가중치 합1-5
gamma분할 최소 손실 감소0-0.5

부스팅 관련

파라미터설명권장값
learning_rate (eta)학습률0.01-0.3
n_estimators트리 개수100-1000
subsample행 샘플링 비율0.5-1.0
colsample_bytree열 샘플링 비율0.5-1.0

정규화 관련

파라미터설명권장값
lambda (L2)L2 정규화1 (기본값)
alpha (L1)L1 정규화0 (기본값)

튜닝 전략

1단계: 트리 개수와 학습률

  • 높은 학습률(0.1)로 시작
  • 조기 종료로 최적 트리 개수 찾기

2단계: 트리 파라미터 튜닝

  • max_depth, min_child_weight
  • gamma

3단계: 정규화

  • subsample, colsample_bytree
  • lambda, alpha

4단계: 학습률 감소

  • 학습률 낮추고 트리 개수 증가

6. LightGBM

Leaf-wise 트리 성장 방식을 사용하는 고속 그래디언트 부스팅 프레임워크

핵심 차이점

Level-wise vs Leaf-wise

XGBoost (Level-wise)LightGBM (Leaf-wise)
같은 레벨의 모든 노드 확장손실 감소가 가장 큰 리프만 확장
균형잡힌 트리비대칭 트리
느리지만 안정적빠르지만 과적합 위험

주요 기법

1. GOSS (Gradient-based One-Side Sampling)

  • 큰 그래디언트 샘플: 모두 유지
  • 작은 그래디언트 샘플: 일부만 샘플링
  • 계산량 감소, 정확도 유지

2. EFB (Exclusive Feature Bundling)

  • 상호 배타적인 특징들을 묶어 차원 축소
  • 희소 특징 공간에서 효과적

장점

  • 속도: XGBoost보다 훨씬 빠름
  • 메모리 효율: 적은 메모리 사용
  • 대용량 데이터: 수백만 행도 처리 가능
  • 범주형 특징: 자동 처리

주의사항


7. CatBoost

범주형 특징 처리에 특화된 그래디언트 부스팅 프레임워크

주요 특징

1. 순서형 부스팅 (Ordered Boosting)

  • 예측 이동(Prediction Shift) 문제 해결
  • 더 나은 일반화 성능

2. 범주형 특징 자동 처리

  • One-hot encoding 불필요
  • Target Statistics 활용
  • 오버피팅 방지 메커니즘 내장

3. 대칭 트리

  • 빠른 예측
  • CPU 캐시 효율적

장점

  • 범주형 변수 많을 때 강력
  • 하이퍼파라미터 튜닝 덜 민감
  • GPU 가속 우수

8. 앙상블 비교표

성능 비교

알고리즘속도정확도메모리과적합 저항성해석력
Random Forest보통좋음높음우수보통
Gradient Boosting느림매우 좋음보통보통낮음
XGBoost빠름매우 좋음보통좋음낮음
LightGBM매우 빠름매우 좋음낮음보통낮음
CatBoost빠름매우 좋음보통좋음낮음

사용 가이드

Random Forest 사용

  • 빠른 베이스라인 모델
  • 해석 가능성 중요
  • 과적합 걱정 없이 사용

XGBoost 사용

  • 정형 데이터 대회
  • 높은 정확도 필요
  • 충분한 튜닝 시간

LightGBM 사용

  • 대용량 데이터 (>10만 행)
  • 빠른 학습 필요
  • 메모리 제약

CatBoost 사용

  • 범주형 특징 많음
  • 빠른 프로토타이핑
  • GPU 사용 가능

9. 실전 팁

앙상블 선택 가이드

데이터 크기별

  • 작은 데이터 (<1만): Random Forest, XGBoost
  • 중간 데이터 (1-10만): XGBoost, CatBoost
  • 큰 데이터 (>10만): LightGBM

문제 유형별

  • 분류 (균형): 모든 앙상블 적용 가능
  • 분류 (불균형): XGBoost (scale_pos_weight), LightGBM (is_unbalance)
  • 회귀: 모든 앙상블 적용 가능
  • 시계열: Gradient Boosting (순차적 특성 활용)

하이퍼파라미터 튜닝 우선순위

1순위: 트리 개수와 학습률

n_estimators: [100, 200, 500, 1000]
learning_rate: [0.01, 0.05, 0.1, 0.3]

2순위: 트리 구조

max_depth: [3, 5, 7, 10]
min_child_weight: [1, 3, 5]

3순위: 샘플링

subsample: [0.5, 0.7, 0.9, 1.0]
colsample_bytree: [0.5, 0.7, 0.9, 1.0]

4순위: 정규화

lambda: [0.1, 1, 10]
alpha: [0, 0.1, 1]

일반적인 실수