Xgboost数学公式推导
时间: 2024-09-25 09:00:41 浏览: 69
基于springboot大学生就业信息管理系统源码数据库文档.zip
XGBoost(eXtreme Gradient Boosting)是一种梯度增强决策树算法,它基于GBDT(Gradient Boosted Decision Trees)框架。核心思想是通过迭代的方式,每次新增加一棵弱分类器(小决策树),并调整权重使得新的模型尽可能减少训练误差。以下是XGBoost的一些关键数学公式:
1. **损失函数**:
每棵树的目标是最小化残差平方和,即 \( L(\theta) = \sum_{i=1}^n l(y_i, f(x_i)) \),其中 \( l \) 是某个损失函数(如对数损失、平方损失等),\( y_i \) 是第 \( i \) 个样本的真实值,\( f(x_i) \) 是当前模型的预测值。
2. **负梯度方向**:
新增树的目标是在上一步残差的基础上减小损失,所以选择的方向是残差的负梯度 \( -\frac{\partial L}{\partial f(x_i)} \)。
3. **最优分裂点**:
对于每棵新添加的小树,找到分割特征 \( j \) 和阈值 \( t \),使得划分最大化了信息增益或者最小化了损失函数的下降量。
4. **更新过程**:
新增的树 \( g_j \) 和 \( h_j \) 分别表示该节点左子树和右子树增加的学习率乘以对应的残差,即 \( g_j = w_j \cdot I(x_j < t), \; h_j = w_j \cdot (1 - I(x_j < t)) \)。这里 \( w_j \) 是学习率,\( I(\cdot) \) 是指示函数。
5. **剪枝策略**:
XGBoost还引入了正则项来防止过拟合,这影响了树的复杂度,比如L1和L2正则化项 \( \Omega(f) \)。
阅读全文