• Home
  • About
    • Sangyeop-kim photo

      Sangyeop-kim

      데이터 광부

    • Learn More
    • Email
    • Github
  • Blog
  • Paper-review

Ensemble (Bagging vs Boosting)

19 May 2020

Reading time ~1 minute

Ensemble

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

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

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

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

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

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

$$\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 생성.
  1. 해당 sample에 대해서 모델 학습.
  1. 1, 2 과정을 M번 반복한 후 최종 Bagging 모델을 다음과 같이 정의
$$\hat{g}_{B a g}(\cdot)=M^{-1} \sum_{k=1}^{M} \hat{g}^{* k}(\cdot)$$

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

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

- Random Forest

🌲Random Forest


Boosting

  1. weak learner를 생성한 후 Error를 계산.
  1. Error에 기여한 Sample마다 다른 가중치를 주고 해당 Error를 감소시키는 새로운 모델 학습.
  1. 1. ~2. 과정을 M번 반복한 후 최종 Boosting model을 다음과 같이 정의.
    $$\hat{g}_{boost}(\cdot)=\sum_{k=1}^{M} c_{k} \hat{g}_{k}(\cdot)\ \$$

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

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

$$\hat{g}_{1}, \ldots, \hat{g}_{k-1}$$

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

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

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

- AdaBoost (Adaptive Boost)

💥AdaBoost

- Gradient Boost

🧨Gradient Boost

- XGBoost

🔥XGBoost

- light GBM

🐣LightGBM: A Highly Efficient Gradient Boosting Decision Tree

Reference

[1] Gentle, James E., Wolfgang Karl Härdle, and Yuichi Mori, eds. Handbook of computational statistics: concepts and methods. Springer Science & Business Media, 2012.

[2] https://quantdare.com/what-is-the-difference-between-bagging-and-boosting/



Share Tweet +1