【机器学习】纯公式推导XGBoost的目标函数

对于一个任务,判断某个家庭成员会对某新出的游戏感兴趣的概率大不大。

XGBoost实际上是对多棵树的结果累加求和
考虑XGBoost的Bagging过程:

y ^ i ( 0 ) = 0 \hat{y}_i^{(0)} = 0 y^i(0)=0

y ^ i ( 1 ) = f 1 ( x i ) = y ^ i ( 0 ) + f 1 ( x i ) \hat{y}_i^{(1)} = f_1(x_i) = \hat{y}_i^{(0)} + f_1(x_i) y^i(1)=f1(xi)=y^i(0)+f1(xi)

y ^ i ( 2 ) = f 1 ( x i ) + f 2 ( x i ) = y ^ i ( 1 ) + f 2 ( x i ) \hat{y}_i^{(2)} = f_1(x_i) + f_2(x_i) = \hat{y}_i^{(1)} + f_2(x_i) y^i(2)=f1(xi)+f2(xi)=y^i(1)+f2(xi)

y ^ i ( t ) = ∑ k = 1 t f k ( x i ) = y ^ i ( t − 1 ) + f t ( 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(t)=k=1tfk(xi)=y^i(t1)+ft(xi)

对于这颗回归树,可以用数学公式如下描述: y ^ i = ∑ j w j x i j \hat{y}_i = \sum_j w_j x_{ij} y^i=jwjxij

目标函数: l ( y i , y ^ i ) = ( y i − y ^ i ) 2 l(y_i, \hat{y}_i) = (y_i - \hat{y}_i)^2 l(yi,y^i)=(yiy^i)2
正则化项: Ω ( f t ) = γ T + 1 2 λ ∑ j = 1 T w j 2 \Omega(f_t) = \gamma T + \frac{1}{2} \lambda \sum_{j=1}^{T} w_j^2 Ω(ft)=γT+21λj=1Twj2(叶子结点的个数和权重值不能太大)

现在还剩下一个问题,我们如何选择每一轮加入什么呢?答案是非常直接的,选取一个目标函数来使得我们的目标函数尽量最大地降低,很容易想到下式:

O b j ( t ) = ∑ i = 1 n l ( y i , y ^ i ( t ) ) + ∑ i = 1 t Ω ( f i ) Obj^{(t)} = \sum_{i=1}^{n} l(y_i, \hat{y}_i^{(t)}) + \sum_{i=1}^{t} \Omega(f_i) Obj(t)=i=1nl(y

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值