XGBoost (eXtreme Gradient Boosting)
XGBoost 의 개념
- XGBoost?
- GBM + 분산/병렬 처리
- 지도학습으로 변수(x)를 학습하여 정답(y)를 예측
- XGBoost가 지원하는 모델
지도학습 용어
- Model: 변수(x)로 정답(y)를 예측하는 함수
- $\theta$: 세타(가중치, 파라미터)
- 학습을 통해 정답을 잘 예측하도록 조정
- Objective Function
- 학습 데이터에 최적화된 파라미터를 찾는 함수
- L: Training Loss (Loss Function)
- $\Omega$: Regularization
- 모델의 복잡도를 조절 (과적합 방지)
XGBoost Parameters
- official website : http://xgboost.readthedocs.io/en/latest/parameter.html#general-parameters
- XGBoost 저자 직강 : http://homes.cs.washington.edu/~tqchen/pdf/BoostedTree.pdf
- XGBoost의 선조격인 GBM(Gradient Boosting Machine)은 뭣? : https://www.analyticsvidhya.com/blog/2016/02/complete-guide-parameter-tuning-gradient-boosting-gbm-python/
용어와 핵심 개념을 정리하자
- GBM (Gradient Boosting Machine) : Boosted Tree 여기 링크를 보며 감을 잡자
Gradient Boosting : 약한 앙상블 예측 문제(ex) decision tree)를 만들고, stage wise하게 boosting을 적용한다. - XGBoost는 supervised learning 문제를 해결하는데 사용한다. XGBoost는 Tree를 사용한 앙상블 부스팅 방법이다. CART라 불리는 트리 앙상블 모델을 구축하고 사용한다. (그림도 보고 싶다면 이곳으로 : http://xgboost.readthedocs.io/en/latest/model.html)
- CART : Classification and Regression Trees
다양한 기준의 Tree를 구축하고, leaf 데이터의 점수를 통해 모델의 적합성을 체크한다. 이후 Tree Boosting을 이용하여 Tree를 이 문제에 맞도록 최적화한다.