본문 바로가기
Archive/데이터 분석 관련

[Data] Ensemble - Gradient Boosting

by 다람이도토리 2021. 8. 2.

앙상블 학습은, 기존에 배웠던 여러 학습 모델들을 결합하여 사용하는 방법이다.

XGBoost, LightGBM에 대해 알아보기 전에, 먼저 Gradient Boosting부터 정리하고자 한다.

 

Boosting이란?

Boosting은 앙상블 학습의 일종으로, 약한 분류기를 결합하여 더 강한 분류기를 만드는 과정이다. 즉 이전 학습에서 오차가 심했던 데이터에 가중치를 주는 방식을 예로 들 수 있다. 이를 통해 오차를 계속 보완해 나가는 일련의 과정을 거치게 된다

Bagging 또한 여러 개의 모델을 만드나, 각각의 모델은 서로 영향을 주지 않고 임의로 데이터 세트를 생성하여학습하게 된다.

Gradient Boosting이란?

Gradient Boosting의 가장 기본은 '모델이 예측한 데이터의 오차'를 가지고 남은 잔차를 다른 모델을 통해 예측하는 방식이다.  즉, 잔차에 대한 지속적인 학습을 통해서, 모델을 보강하는 방식이다.

갑자기 분위기 Gradient?

loss function을 다음과 같이 정의하자. 

여기서, 이 식을 미분한 후에 음의 값을 취하면 잔차를 얻게 된다.

직관적으로 이해해보면, 손실함수를 미분해서 기울기를 구한 후, 이 손실 값이 작아지는 방향으로 파라미터를 움직이게 한다.

(출처 :  wikipedia, https://en.wikipedia.org/wiki/Gradient_boosting)

 

 

Example - XGBoost

분류 모델에서 쓰이는 XGBoost의 경우는, 학습을 위한 목적식에 Regularization term이 추가된 방식이다.

Example - LightGBM

LightGBM의 경우는, XGBoost와 다르게 뿌리를 내려갈때 깊이 방식(level)방식이 아닌 리프 단위로 학습하기 때문에 더 깊이 내려갈 수 있다.

(실습코드)

https://github.com/SeongwonTak/TIL_swtak/blob/master/XGBoost_LightGBM.ipynb

두 가지에 대해서는 자세한 원리와 함께 추후 자세히 알아보도록 하자.