xgboost:算法数学原理

XGBoost是一种梯度提升决策树算法,其预测值由多棵决策树的输出加权求和得出。文章详细介绍了XGBoost的预测模型表达式,以及带正则项的损失函数,包括二阶泰勒展开和二阶近似的损失函数。通过不断优化单棵树来减少整体损失,XGBoost使用了贪心策略,每次迭代只优化一棵树,并通过计算叶子节点的增益来决定分裂。正则化项用于控制模型复杂度,防止过拟合。

xgboost算法数学原理

1、求预测值
y^i=ϕ(xi)=∑k=1Kfk(xi),fk∈F,(1) \hat{y}_i=\phi\left(\mathbf{x}_i\right)=\sum_{k=1}^K f_k\left(\mathbf{x}_i\right), \quad f_k \in \mathcal{F},\tag{1} y^i=ϕ(xi)=k=1Kfk(xi),fkF,(1)
F={ f(x)=wq(x)}(q:Rm→T,w∈RT)\mathcal{F}=\left\{f(\mathbf{x})=w_{q(\mathbf{x})}\right\}\left(q: \mathbb{R}^m \rightarrow T, w \in \mathbb{R}^T\right)F={ f(x)=wq(x)}(q:RmT,wRT):递归树的的空间;

qqq:每棵树的结构,映射一个样本到一个叶子节点index;

T:T:T:叶子的数目;fkf_kfk对于一个独立的树结构qqq和叶子权重www

wiw_iwi:在i−thi-thith叶子节点的分数;(与决策树不同,递归树在每个叶子节点上包含一个连续分数)。

示例图:(注:图中的人指的是一个个样本)

结合上面的公式理解就是对于样本iii的预测值等于KKK棵递归树样本落在的叶子节点对应的分数的和;

在这里插入图片描述

2、计算带正则项的损失
L(ϕ)=∑il(y^i,yi)+∑kΩ(fk) where Ω(f)=γT+12λ∥w∥2(2) \begin{aligned} & \mathcal{L}(\phi)=\sum_i l\left(\hat{y}_i, y_i\right)+\sum_k \Omega\left(f_k\right) \\ & \text { where } \Omega(f)=\gamma T+\frac{1}{2} \lambda\|w\|^2 \end{aligned}\tag{2} L(ϕ)=il(y^i,yi)+kΩ(fk) where Ω(f)=γT+21λw2(2)
lll:衡量预测值yi^\hat{y_i}yi^和目标值yiy_iyi差别的可微的凸函数;

Ω\OmegaΩ:模型复杂度的惩罚项;用于平滑最终的学习权重避免过拟合。正则化的目标函数倾向于选择一个更简单、可预测的函数(递归树模型);传统的梯度提升树没有用正则化项,RGF用到。

3、梯度树集成(Gradient Tree Boosting)

从对全部递归树的损失,利用贪心和近似,推导到一棵树的损失

为什么用(3)式作为目标函数而不是(2)式?

将(1)和(2)合并:
L(ϕ)=∑il(∑k=1Kfk(xi),yi)+∑kΩ(fk) where Ω(f)=γT+12λ∥w∥2(2) \begin{aligned} & \mathcal{L}(\phi)=\sum_i l\left(\sum_{k=1}^K f_k\left(\mathbf{x}_i\right), y_i\right)+\sum_k \Omega\left(f_k\right) \\ & \text { where } \Omega(f)=\gamma T+\frac{1}{2} \lambda\|w\|^2 \end{aligned}\tag{2} L(ϕ)=il(k=1

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

KPer_Yang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值