AdaBoost(아다부스트, Adaptive Boosting)
Adaboost는 최초의 Boosting 알고리즘입니다
이전 Decision Tree가 잘못 예측한 데이터에 큰 가중치를 부여해, 다음 Decision Tree가 더 집중할 수 있도록 순차적으로 학습하는 방법입니다
Decision Tree로는 Stump 구조를 사용합니다
(여기서 Stump 구조란 하나의 Split 만을 가진 가장 간단한 형태의 Decition Tree입니다)
세부적으로 설명하자면 B개의 Decision Tree 별로 계산된 모델 가중치 (cb)를 합산하여 최종 모델을 생성합니다

AdaBoost의 알고리즘 설명 전 AdaBoost의 Loss Function에서 사용되는 지수 손실에 대해서 간략히 설명하겠습니다
※ 지수 손실
지수 손실은 Boosting 알고리즘에서 주로 사용되는 Loss Function으로, 예측이 실제 라벨과 일치하지 않을 때 큰 손실을 부과합니다
yi | ˆf(xi) | Loss (e−yf(x)) |
1 | 1 | e−1 |
-1 | -1 | e−1 |
1 | -1 | e |
-1 | 1 | e |
예측이 틀린 샘플에 대해(yi≠ˆf(xi))에 대해 더 큰 Loss(지수함수이기 때문에)를 부여하게 됩니다
알고리즘
위의 식을 보면 최종 모델은 Recursive하게 도출됨을 알 수 있습니다(이전 모델의 결과 + 현재 모델의 결과)
Loss Function은 지수 손실의 합으로 정의합니다 (w1i=1,wbi=e−yiˆfb−1(xi))
wb : Sample 가중치, 잘못 분류된 샘플의 가중치는 증가하고, 올바르게 분류된 샘플의 가중치는 감소
cb : Weak Classifier 가중치, Error가 낮을수록 해당 모델의 가중치가 증가
wbi=e−yiˆfb−1(xi) : 이전 Step에서 xi의 예측을 잘못 했다면, 현재 Step에서 xi의 가중치 증가
Loss Function은 아래와 같습니다
이제 Loss Function을 최소화하여 Optimization을 진행해야합니다
N∑i=1wbie−cb : 전체 데이터 셋에 의해 이전 모델의 가중치를 계산(특정 예측 결과에 의존 x)
∑yi≠^fb(xi)wbi(ecb−e−cb) : 잘못 예측한 데이터의 가중치를 고려한 Decision Tree 학습
따라서 Loss Function을 최소화하는 ^fb는 ∑yi≠^fb(xi)wbi를 최소화하는 모델입니다
이 때, 오류율 ϵb=∑yi≠^fb(xi)wbi∑wbi 입니다
위의 과정을 B번 반복하면 최종 모델 f∗b(x)를 생성하게 됩니다
'ML > Ensemble' 카테고리의 다른 글
[ML][Ensemble]XGBoost(Extreme Gradient Boost) (4) | 2024.07.04 |
---|---|
[ML][Ensemble]Gradient Boosting Machine(GBM) (1) | 2024.07.02 |
[ML][Ensemble] Random Forest(랜덤 포레스트), OOB(Out Of Bag) (0) | 2024.06.25 |
[ML][Ensemble] Ensemble Learning(앙상블 학습), Bagging(배깅),Boosting(부스팅) (0) | 2024.06.25 |
[ML][Ensemble]Decision Tree(결정트리) (0) | 2024.06.24 |