XGBOOST公式推导及细节算法

本文深入探讨了XGBOOST的原理,包括目标函数的构成,损失函数及其导数,决策树的组合优化,以及如何在数据不平衡、正则化等方面进行处理。XGBOOST通过梯度提升策略训练CART决策树,通过优化目标函数的二次项和正则项来构建模型。在决策树的构建过程中,文章详细解释了如何选择最佳切分点和节点值,并讨论了在处理多分类问题时的不同方法。
摘要由CSDN通过智能技术生成

Extreme Gradient Boosting

objective function(目标函数):

O b j ( θ ) = L ( θ ) + Ω ( θ ) Obj(\theta)=L(\theta)+\Omega(\theta) Obj(θ)=L(θ)+Ω(θ)
目标函数等于损失函数加模型正则项,两者代表bias-variance tradeoff.损失函数在不同问题下可取不同形式,MSE,logloss

基础学习器

XGBOOST中基础学习器可选CART,线性模型,DART(带dropout的boosted tree)
使用CART时,所有决策树都是回归树(Regression Tree),处理二分类问题时,回归树节点值为分类的odds,类似于LR中的 ω x + b \omega x+b ωx+b,最后可再转化为概率。即单颗回归树也能处理分类问题,且可以输出概率。使用线性模型做基学习器时,相当于LR。

决策树组合(Decision Tree Ensembles)

模型可以写成: y ^ i = ∑ k = 1 K f k ( x i ) , f k ∈ F \hat{y}_i=\sum_{k=1}^{K}f_k(x_i),f_k\in \mathcal{F} y^i=k=1Kfk(xi),fkF
其中 K K K是树的总个数, f f f是函数空间 F \mathcal{F} F中的一个函数,函数空间 F \mathcal{F} F代表所有CART组成的函数空间。
要优化的目标函数为 O b j ( θ ) = ∑ i = 1 n l ( y i , y ^ i ( t ) ) + ∑ k = 1 K Ω ( f k ) Obj(\theta)=\sum_{i=1}^n l(y_i, \hat{y}_i^{(t)})+\sum_{k=1}^K \Omega(f_k) Obj(θ)=i=1nl(yi,y^i(t))+k=1KΩ(fk)
XGBOOST的最终结果可以看作是所有CART的加法组合,而随机森林的最终结果是CART加法组合的平均值,所以XGBOOST和RF在本质上是一种模型,都是要训练多个CART然后将结果相加。区别只是在每颗CART的训练方式上。(翻译自xgboost官方文档)
GBDT每轮训练一颗决策树,在训练新决策树时,不改变前面已经存在的树。 (additive strategy: fix what we have learned, and add one new tree at a time)
y ^ i ( 0 ) = 0 y ^ i ( 1 ) = f 1 ( x i ) = y ^ i ( 0 ) y ^ i ( 2 ) = f 1 ( x i ) + f 2 ( x i ) = y ^ i ( 1 ) + f 2 ( x i ) . . . . . . y ^ i ( t ) = ∑ k = 1 t f k ( x i ) = y ^ i ( t − 1 ) + f t ( x i ) \hat{y}_i^{(0)}=0 \\ \hat{y}_i^{(1)} =f_1(x_i)= \hat{y}_i^{(0)}\\\hat{y}_i^{(2)} = f_1(x_i) + f_2(x_i)= \hat{y}_i^{(1)} + f_2(x_i)\\......\\\hat{y}_i^{(t)} = \sum_{k=1}^t f_k(x_i)= \hat{y}_i^{(t-1)} + f_t(x_i) y^i(0)=0y^i(1)=f1(xi)=y^i(0)y^i(2)=f1(xi)+f2(xi)=y^i(1)+f2(xi)......y^i(t)=k=1tfk(xi)=y^i(t1)+ft(xi)
每一轮的优化方向是,当加入一颗决策树后,能最大程度的优化我们的目标函数。
o b j ( t ) = ∑ i = 1 n l ( y i , y ^ i ( t ) ) + ∑ i = 1 t Ω ( f i ) = ∑ i = 1 n l ( y i , y ^ i ( t − 1 ) + f t ( x i ) ) + Ω ( f t ) + c o n s t a n t \begin{aligned} {obj}^{(t)} & = \sum_{i=1}^n l(y_i, \hat{y}_i^{(t)}) + \sum_{i=1}^t\Omega(f_i) \\ & = \sum_{i=1}^n l(y_i, \hat{y}_i^{(t-1)} + f_t(x_i)) + \Omega(f_t) + \mathrm{constant}\end{aligned} obj(t)=

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值