XGBoost
- XGBoost stands for eXtreme Gradient Boosting
Steps:
- Get initial_guess, unlike Gradient Boosting, its always 0.5
- Start with one node which has all the residuals of the datapoint
- Get similarity score for that node
- Split the node
- Get similarity score for each leaf
- Calculate gain for that split, $gain_{split} = similarity_{left} + similarity_{right} - similarity_{root}$
- Go to 4 and continue splitting till predetermined number of depth is reached (usually 6)
- Prune the tree
- Calculate $gain - \gamma$ for the lowest branch
- If its negative remove the branch
- And continue go up till one has positive value
- Get $current_guess = log_odds(0.5) + lr * current_prediction$
- $probability = \frac{\exp(current_guress)}{1 + \exp(current_guress)}$
- Got to step 2, until a predetermined number of estimator is reached
Pros:
- Good at Handling Missing Data
- Performs well on dataset from small to large, complicated dataset
Cons:
- Bad at Handling Outliers