【ML】极限梯度提升算法XGBoost(Extrme Gradient Boosting)

XGBoost是一种基于梯度提升的决策树算法,通过引入正则化项和优化目标函数,有效控制模型复杂度,防止过拟合。相较于GBDT,XGBoost利用二阶导数信息,提供更精确的逼近,支持自定义代价函数,具备并行计算能力,显著提升训练速度。

极端梯度提升XGBoost

  XGBoost属于boosting集成学习方法,其基学习器的学习是串行的。CART回归树的加法模型:
y ^ = ϕ ( x ) = ∑ i = 1 K f k ( x ) , f k ∈ F \hat{y}=\phi(x)=\sum_{i=1}^K f_k(x),\quad f_k\in \mathcal{F} y^=ϕ(x)=i=1Kfk(x),fkF
其中, F = { f ( x ) = w q ( x ) } ( q : R m → T , w ∈ R T ) \mathcal{F}=\{f(x)=w_{q(x)}\}(q: \mathbb{R}^m\rightarrow T,w\in \mathbb{R}^T) F={ f(x)=wq(x)}(q:RmT,wRT)为包含所有CART回归树的函数空间。

  • 每个 f k f_k fk对应一个独立的树结构 q q q和叶子结点的得分,它的取值为样本点所在叶结点的得分
  • 树结构 q q q看做一个诸多样本点映射到各个叶子结点的函数 T T T为叶子结点的个数,
  • w i w_i wi代表第 i i i个叶子结点的得分

  模型参数为每棵树的结构及其叶结点的得分,或者简单的记作 Θ = { f 1 , f 2 , . . . , f K } \Theta=\{f_1,f_2,...,f_K\} Θ={ f1,f2,...,fK},也就是说,这里我们要学习的是一个个函数——学习树模型:定义一个目标函数,然后最优化目标函数。

XGBoost目标函数——正则化思想

正则化
  基于正则化思想,给定数据集 { ( x i , y i ) , 1 ≤ i ≤ n } \{(x_i,y_i),\quad 1\leq i\leq n\} { (xi,yi),1in} x i ∈ R m , y i ∈ R x_i\in \mathbb{R}^m, y_i\in\mathbb{R} xiRm,yiR,通过最优化以下目标函数来学习模型,
min ⁡ f k L ( ϕ ) = ∑ i = 1 n l ( y i , y ^ i ) + ∑ k = 1 K Ω ( f k ) w h e r e Ω ( f ) = γ T + 1 2 λ ∣ ∣ w ∣ ∣ 2 \begin{aligned} &\min_{f_k} \quad L(\phi)=\sum_{i=1}^nl(y_i,\hat{y}_i)+\sum_{k=1}^K\Omega(f_k)\\ &where \quad \Omega(f)=\gamma T+\frac{1}{2}\lambda ||w||^2 \end{aligned} fkminL(ϕ)=i=1nl(yi,y^i)+k=1KΩ(fk)whereΩ(f)=γT+21λw2

其中, l l l为损失函数(可微、凸函数); Ω \Omega Ω衡量树的复杂度:对叶结点个数 T T T进行惩罚(剪枝),叶结点得分 w w wL2正则化项(光滑的得分函数、避免过拟合)。

优化目标函数——Additive Training

  由于我们这里的 f k f_k fk是树,而不是一般地数值向量,不能用像SGD这样的方法来求解,因此采用Additive Training。
Additive Training
  第 t t t轮学习中,我们需要寻找最优的 f t f_t ft得到预测 y ^ i ( t ) = y ^ i ( t − 1 ) + f t ( x i ) \hat{y}_i^{(t)}=\hat{y}_i^{(t-1)}+f_t(x_i) y^i(t)=y^i(t1)+ft(xi),可写第 t t t轮的目标函数
L ( t ) = ∑ i = 1 n l ( y i , y ^ i ( t ) ) + ∑ k = 1 t Ω ( f k ) = ∑ i = 1 n l ( y i , y ^ i ( t − 1 ) + f t ( x i ) ) + Ω ( f t ) + ∑ k = 1 t − 1 Ω ( f k ) \begin{aligned} L^{(t)}&=\sum_{i=1}^nl(y_i,\hat{y}_i^{(t)})+\sum_{k=1}^t\Omega(f_k)\\ &=\sum_{i=1}^nl(y_i,\hat{y}_i^{(t-1)}+f_t(x_i))+\Omega(f_t)+\sum_{k=1}^{t-1}\Omega(f_k) \end{aligned} L(t)=i=1nl(yi,y^i(t))+k=1tΩ(fk)=i=1nl(yi,y<

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值