XGBoost
Gradient Boosting is a general technique for creating a strong predictive model by combining multiple weaker models, typically decision trees. It builds the model in a stage-wise fashion, where each new tree corrects errors made by the previous trees. The general idea is to optimize a loss function iteratively.
XGBoost, which stands for Extreme Gradient Boosting, is an optimized implementation of the gradient boosting framework. The "Extreme" part comes from several improvements and optimizations that make it faster and more efficient compared to traditional Gradient Boosting methods. These enhancements include:
- Regularization: XGBoost includes L1 and L2 regularization to prevent overfitting.
- Parallelization: XGBoost can build trees in parallel, significantly speeding up the training process.
- Tree Pruning: It uses a more efficient way of pruning trees, which helps in controlling the complexity of the model.
- Handling Missing Values: XGBoost can automatically handle missing data by learning which missing values are optimal for splits.
- Sparsity Awareness: It efficiently handles sparse data (data with a lot of missing values).
- Custom Objective and Evaluation Functions: XGBoost allows for customized objective functions and evaluation metrics, providing flexibility to tailor the model to specific needs.
These improvements make XGBoost particularly powerful and popular in many machine learning competitions and real-world applications with lots of data.
Resources
Fantastic Conceptual Playlist
- Perhaps the only videos required to form an intuition are videos 1 (Introduction) and 4 (Special features).
- The concept is highly complex (especially episode 4), so other than being familiar with the terms I would not recommend getting hung up on the nitty-gritty details!
- The playlist is ONLY for getting a overview of the concept. No programming.