Tech/ML, DL

GBM 모델 : lightGBM vs XGBoost

Julie's tech 2021. 5. 14. 11:49
728x90

지난 글에서 GBM과 앙상블에 대해 다뤄보았는데, 이번엔 GBM 모델 중 대표적인 두 모델을 살펴보고자 한다.

GBM모델은 앞선 글에서도 다루었듯이, Boosting기법의 앙상블 모델이기 때문에 성능은 뛰어나나, 연산량이 많아 속도 측면에서 개선하고자 하는 니즈가 있다.

lightGBM은 데이터의 size, dimension 측에서 각각 복잡도를 줄일 수 있는 기법을 개발하여 반영하였다.

lightGBM 모델 논문을 리뷰한 글은 아래 링크에 있다.

https://blog.naver.com/ilovelatale/222298514382

 

Kaggle Case Study - (2) LightGBM 모델

오늘은 Santender Customer Transaction Prediction 모델에서 우승팀 중 하나가 사용했던 lightGBM ...

blog.naver.com

XGBoost모델은 Extreme Gradient Boost의 약자로,

lightGBM처럼 Gradient Descent 방식으로 Boosting하는 앙상블 모델이다.

흔히 속도가 빠르고, 활용성이 좋아 인기를 끄는 모델이다.

GBM에서 과적합 방지를 위해 Regulation만 추가하였다고 볼 수 있다.

Regulation항목은 모델 복잡도가 올라갈수록 손실값에 페널티를 부여하는 방식으로 되어 있다.

뿐만 아니라 가지치기(Pruning), 조기 중단(Early Stopping)과 같은 기능들도 추가가 되었다.


lightGBM이 XGBoost보다 학습 시간이 훨씬 단축되고, 성능은 평균적으로 보장된다.

XGBoost보다 2년 정도 뒤에 나온 알고리즘이라, XGBoost의 단점을 보완하는 식으로 개발되었다.

XGBoost와 lightGBM의 차이는 트리를 분할하는 방향에서 발생한다.

XGBoost는 level-wise Tree Growth 방식을 택하여, 트리 깊이를 최소화하면서 균형잡힌(Balanced) 트리를 만들게 된다.

반면 LightGBM은 다른 일반적인 GBM들과는 달리 leaf-wise로 트리 분할한다.

손실이 큰 트리에 대해서 지속적으로 분할해나가게 된다.

이에 따라 깊이를 늘리게 되지만, level-wise로 발생하는 불필요한 연산을 줄일 수 있다.

최대 손실이 발생하는 트리에 대해 분할해나가면서 줄여나가기 때문에 성능이 더 좋거나 비슷하다고 한다.

하지만 깊이가 깊어질수록 overfitting이될 확률이 높기 때문에, max-depth라는 파라미터를 통해서 잘 조정해야한다.

존재하지 않는 이미지입니다.

출처 : https://www.slideshare.net/GabrielCyprianoSaca/xgboost-lightgbm

다음 글에서는 각 모델에 대한 구현과 성능 차이에 대해 직접적으로 use-case를 통해 살펴보는 내용을 담겠다.


참고자료

https://assaeunji.github.io/ml/2021-01-07-xgboost/

 

XGBoost vs. LightGBM, 어떤 알고리즘이 더 좋을까?

오늘은 GBM에 대한 자세한 설명에 이어 GBM 기반의 XGBoost와 LightGBM 알고리즘에 대해 알아보고, 어떤 알고리즘이 더 좋은지 비교하고자 합니다. 파이썬 머신러닝 완벽 가이드 책을 참고해 정리하였습니다. 실습에 대한 전체 코드는 이 곳에서 확인하실 수 있습니다.

assaeunji.github.io

 

반응형