← 문제 목록/AdaBoost 한 라운드 (α, w 업데이트)
문제 해설

AdaBoost 한 라운드 (α, w 업데이트)

앙상블 · easy

preview

AdaBoost 한 라운드 (α, weight 업데이트)

53번 가중치 Decision Stump 로 약한 분류기를 뽑았다면, AdaBoost 는 그 결과를 가지고 두 가지를 계산합니다:

1. 분류기 가중치 α

α=12ln1ϵϵ\alpha = \frac{1}{2} \ln \frac{1 - \epsilon}{\epsilon}

  • ϵ\epsilon = 가중 오차 iwi1[y^iyi]\sum_i w_i \cdot \mathbb{1}[\hat{y}_i \ne y_i]
  • ϵ<0.5\epsilon < 0.5 이면 α>0\alpha > 0 (의미 있는 약분류기)
  • 완벽 (ϵ=0\epsilon = 0) → α\alpha \to \infty (실무: clip)

2. 샘플 가중치 업데이트

winewwiexp ⁣(α1[y^iyi]2α0)w_i^{new} \propto w_i \cdot \exp\!\left(\alpha \cdot \mathbb{1}[\hat{y}_i \ne y_i] \cdot 2 - \alpha \cdot 0\right)

쉽게: 틀린 샘플wieαw_i \cdot e^\alpha 로 키우고, 맞은 샘플wieαw_i \cdot e^{-\alpha} 로 줄인 뒤 정규화 (w=1\sum w = 1).

과제

함수 adaboost_round(y_true, y_pred, w) 를 완성하세요.

  • y_true, y_pred{0, 1}, shape (N,).
  • w shape (N,), w=1\sum w = 1.
  • 반환: (alpha: float, w_new: np.ndarray).
  • ε=0 이면 α=large (예: 10.0), w_new = w (업데이트 불필요).

테스트 케이스

#이름검증
1완벽 예측 → α 큼, w 동일
2ε=0.5 → α=0임의 약분류기의 최악점
3w_new 합 = 1정규화
4틀린 샘플 w 증가, 맞은 샘플 w 감소
5손계산 일치toy 예제
코드 작성
Loading...
실행 결과

코드를 작성하고 Run 을 눌러보세요.