XGBoost : A Scalable Tree Boosting System
04_7 : Ensemble Learning : XGBoost : A Scalable Tree Boosting System 이 글은 XGBoost를 공부하면서 이해한 내용들을 정리한 글이다. 논문에는 생략되어있는 수식 전개를 나름 쉽게 설명해보려 하다보니 내용도 많고 수식도 많다. 정리하는데 너무 힘들었다ㅠㅜ 각 항목별로 논문의 몇번째 항목인지 부제목 옆에 적어놓았으니, 글을 읽을 때 논문을 함께 보도록 하자! ( 논문 ) XGBoost는 기존 Gradient Boosting 방법에 Approximation 방법을 적용하여 Parallelize를 가능하게 하고, 하드웨어적인 최적화를 하여 더 빠르게 학습을 진행하면서 동시에 좋은 성능을 보인다. XGBoost가 각광받은 이유 중 하나는 Scalability(확장성)이다. 여러 종류의 데이터들과 목적에 잘 적용되고, 빠르고, 좋은 성능을 보인다. 우선 앞서 다른 글에서 이야기 했었지만, 다시한번 기본적인 Ensemble : Tree Boosting 방법에 대하여 짚고 넘어가자. Regularized Learning Objective (Article 2.1) 주어진 Dataset이 $n$개의 example(instance)들과 $m$개의 feature(variable)로 이루어져 있다고 가정하자. 그렇다면 Ensemble model의 추정값은 아래와 같다. $$\hat{y}_i = \phi (x_i) = \sum_{k=1}^K f_k(x_i),\;\;\;\;\;\;f_k \in \mathcal{F}$$ $$where\;\;\mathcal{F} = \{f(x) = w_{q(x)}\}\;\;(q:\mathbb{R}^m \rightarrow T,\;w\in \mathbb{R}^T)$$ $\mathcal{F}$는 모든 가능한 함수들을 포함하는 Function space이고, 함수 $f_k$는 각각의 Classification and regression tree(CART)이다. CART에서는 ...