XGBoost 从入门到实战:Python 详细教程
一、XGBoost 简介
XGBoost(eXtreme Gradient Boosting) 是一种基于决策树的集成学习算法,通过梯度提升框架实现高效机器学习。它在 Kaggle 竞赛中屡获佳绩。
核心优势:
- 高效性能:并行计算优化,处理大规模数据
- 正则化:内置 L1/L2 正则化防止过拟合
- 灵活性:支持自定义损失函数和评估指标
- 缺失值处理:自动处理缺失值
- 特征重要性:提供特征重要性评估
二、环境安装与数据准备
安装 XGBoost
pip install xgboost pandas scikit-learn matplotlib
导入必要库
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import xgboost as xgb
from sklearn.model_selection import train_test_split, GridSearchCV
from sklearn.metrics import accuracy_score, mean_squared_error
from sklearn.datasets import load_iris, load_diabetes
三、核心原理解析
1. 决策树基础
决策树通过特征分割构建树形结构,每个叶节点代表一个预测结果。
2. 梯度提升(Gradient Boosting)
- 串行训练多个弱学习器(决策树)
- 每个新模型纠正前一个模型的错误
- 最终预测是所有树预测的加权和
3. XGBoost 的改进
\text{目标函数} = \sum_{i=1}^{n} L(y_i, \hat{y}_i) + \sum_{k=1}^{K} \Omega(f_k)
- L(y_i, ŷ_i):损失函数(如 MSE、LogLoss)
- Ω(f_k):正则化项(控制模型复杂度)
- 二阶泰勒展开:同时使用一阶导数和二阶导数
- 加权分位法:优化特征分裂点选择


