Adaboost 모형

boosting 알고리즘 중에 여러개의 model을 만들어 voting시킨다는 것이 조금 이상하다는 생각이 들 수도 있을 것 같습니다.

 

boosting에서 말한 알고리즘 중 두 번째 알고리즘이 Adaboost인데요. 조금 더 구체적이지만 아주 간단하게? 설명하자면 다음과 같습니다.

 

전체 train data에서 random하게 data를 뽑습니다.

 

random하게 data를 뽑은 sample로 하나의 model A를 학습합니다.

 

참고로 Adaboost에서 사용한 model Arandom forest가 완전한 tree를 사용하던 것과는 조금 다르게 두 개의 leaf만 가지는(1번만 분기하는) stump라는 tree를 사용합니다.

 

그림1. Adaboost의 stump

 

학습한 A로 전체 train data에 대해 validation을 수행합니다. 이 과정에서 Amodel weight

틀린 데이터에 대한 data weight를 구합니다.

 

그림2. Adaboost 알고리즘

 

참고로 위 알고리즘에서 model weight는 $alpha  _{m}$이고 data weight는 $w _{i}$입니다. 당연히 외울 필요는 없구요..

 

그냥 직관적으로는 validation 과정에서 model이 얼마나 잘 맞추고 틀렸는지를 반영하는 부분이 $alpha  _{m}$이고 틀린 데이터에 더 가중치를 부여하는 과정이 $w _{i}$라고 생각하면 충분합니다.

 

updatetrain data에서 다시 한번 sample을 뽑은 뒤 새로운 model B를 학습합니다.

 

model B에 대해 전체 data set으로 validation을 수행하고 model weightdata weight를 구합니다.

 

계속해서 반복하여 여러개의 model을 만들고 model weight를 이용하여

 

ensemblemodel을 구하는 과정이 Adaboost라고 할 수 있을 것 같습니다.

 

참고

 

[EM] 부스팅(Boosting) 이론 : 네이버 블로그 (naver.com)

 

[EM] 부스팅(Boosting) 이론

안녕하세요 데이터 과학자를 꿈꾸는 꿈쟁이입니다. 오늘은 앙상블 방법 중 “데이터를 조절하는 방법”의 ...

blog.naver.com

 

 

'정형데이터' 카테고리의 다른 글

XGBoost 모델  (0) 2021.11.02
Gradient boosting 모형  (0) 2021.11.01
boosting에 대하여  (0) 2021.10.29
random forest 모형  (0) 2021.10.28
bagging이란?  (0) 2021.10.27
TAGS.

Comments