Ensemble (Bagging vs Boosting) - 한 눈에 알아보기

김상엽·2020년 5월 26일
1

Blog

목록 보기
1/2

Ensemble

Ensemble method는 예측 성능의 향상을 위해 사용된다.

Ensemble의 기본적인 원칙은 기본 모델(some model)을 설정하고 그것의 linear combination을 하는 것이다.

d차원 input을 이용해 실수값을 예측하는 문제를 가정하자.

g:RdRg: \mathbb{R}^{d} \rightarrow \mathbb{R}

g^1(),g^2(),g^3(),\hat{g}_{1}(\cdot), \hat{g}_{2}(\cdot), \hat{g}_{3}(\cdot), \ldots

위와 같이 M 개의 모델들을 형성한 이후

g^ens()=k=1Mckg^k()\hat{g}_{e n s}(\cdot)=\sum_{k=1}^{M} c_{k} \hat{g}_{k}(\cdot)

개별 모델의 weighted sum 형태로 Ensemble 예측 모델을 만든다.

모델의 계수를 정하는 방식에 따른 bagging과 boosting

bagging과 boosting은 모델의 성능을 향상시키는 방법 중 하나라는 점에서는 공통점이 있지만 근본적으로는 매우 큰 차이를 갖고 있다.

  • bagging : variance를 감소시키는 역할
  • boosting : bias를 감소시키는 역할

variance & bias

Bagging (bootstrap aggregating)

  1. 데이터로부터 복원추출을 통해 n개의 bootstrap sample 생성.
  2. 해당 sample에 대해서 모델 학습.
  3. 1, 2 과정을 M번 반복한 후 최종 Bagging 모델을 다음과 같이 정의
g^Bag()=M1k=1Mg^k()\hat{g}_{B a g}(\cdot)=M^{-1} \sum_{k=1}^{M} \hat{g}^{* k}(\cdot)

Bagging 자체는 적용이 매우 쉬운 방법이라 어느 기본 모델에도 적용이 가능하다.

따라서, 가장 많이 쓰이는 Random Forest에 대해서만 다뤄도 좋을 거 같다!

- Random Forest


Boosting

  1. weak learner를 생성한 후 Error를 계산.

  2. Error에 기여한 Sample마다 다른 가중치를 주고 해당 Error를 감소시키는 새로운 모델 학습.

    1. ~2. 과정을 M번 반복한 후 최종 Boosting model을 다음과 같이 정의.
    g^boost()=k=1Mckg^k()\hat{g}_{boost}(\cdot)=\sum_{k=1}^{M} c_{k} \hat{g}_{k}(\cdot)

Bagging과 같이 병렬적인 Ensemble 방법이 아니다.

Boosting은 순차적인 Ensemble 기법으로 c_k가 Sample Weight과 이전에 학습된 모델인

g^1,,g^k1\hat{g}_{1}, \ldots, \hat{g}_{k-1}

에 의해 조절되는 특성을 지닌다.

Boosting 기법은 Sample이 error에 기여하는 정도, Sample Weight을 조절(계산)하는 방법에 따라 종류가 매우 다양하다.

더욱 자세한 내용은 아래의 링크들을 보자!

- AdaBoost (Adaptive Boost)

- Gradient Boost

- XGBoost

- light GBM

Reference

profile
2차 산업 데이터 광부 노동자 김상엽

0개의 댓글