XGboost算法公式
时间: 2024-12-16 09:12:17 浏览: 1
大白话XGBoost算法--彻底了解XGBoost
4星 · 用户满意度95%
XGBoost(Extreme Gradient Boosting)是一种基于梯度提升决策树的机器学习算法,它是由Chen and Guestrin在2016年提出的。该算法的核心思想是通过迭代地训练弱学习器(通常是决策树),并将它们组合成强学习器。每个新模型都会专注于前一轮模型预测错误的部分,以此来减小残差。
XGBoost的具体公式可以分为两部分:损失函数和正则化项。对于单棵树的贡献,可以表示为:
1. **损失函数**:假设我们有m个样本和n个特征,第i个样本的预测值为f(x_i),真实值为y_i。对于回归任务,常用的损失函数如均方误差(MSE)或对数损失;对于分类任务,常见的是二元交叉熵。那么,损失函数L可以表示为:
\[ L = \sum_{i=1}^{m} \ell(f(x_i), y_i) \]
2. **正则化项**:为了防止过拟合,XGBoost引入了L1和L2正则化,分别对应于树的叶子节点权重的绝对值和平方和。正则化项通常包括树的深度d,叶节点数n_leaves,以及每个叶子的贡献η_t。其表达式为:
\[ R = \gamma T + \frac{1}{2}\lambda\sum_{t=1}^{T}\eta_t^2 \]
其中γ是L1正则化强度,λ是L2正则化强度。
综合起来,每棵决策树的目标是最小化损失加上正则化项:
\[ F_t(\theta) = \arg\min_{f_t} [L_t(f_t) + \gamma T + \frac{1}{2}\lambda\sum_{t=1}^{T}\eta_t^2] \]
然后整个模型的预测就是所有单棵树的加权和:
\[ f(x) = \sum_{t=1}^{T}f_t(x) \]
阅读全文