xgboost 推导 /原理/公式/

本文介绍了XGBoost的目标函数,它由训练损失和正则化项组成,旨在最小化目标函数。通过泰勒展开公式,详细推导了目标函数的优化过程,强调了正则化项在防止过拟合中的作用。XGBoost通过逐棵优化决策树,寻找最佳分割点以最大化信息增益,实现模型提升。
摘要由CSDN通过智能技术生成

首先要知道booster中四个经典模型,gbdt,lightgboost,xgboost,catboost,具体区别自己百度,各有优缺点。

公式

xgboost 目标函数

目标函数就是损失相关,一般模型都是要使目标函数最小化。

xgboost 目标函数由训练损失和正则化项两部分组成,目标定义如下:

   Obj=\sum _{i=1}^{n}l(y_{i},\hat{y}_{i})+\sum_{k=1}^{K}\Omega (f_{k})

前半部分为训练损失,后半部分为树的复杂度

l(y_{i},\hat{y}_{i}) 是损失函数。y_{i}是真实值,\hat{y}_{i}是预测值,i表示第i个样本。

一般常见的方差,标准差,平均标准差之类的就是损失函数的一种,就是衡量真实值和预测值之间的差距。

比如:(y_{i}-\hat{y_{i}})^{2}

xgboost 是一个加法模型,拟合残差相加得到结果,booster方法都这样,booster是啥自己百度。

最后的结果是由k棵树拟合的结果相加组成;

先分析那个f_{k} ,就是第k棵树,

一个预测的目标值就是  \sum _{k=1}^{K}f_{k}(x_{i})

正则化项就是计算k棵树的复杂度,当作惩罚因子,加入目标函数中,就出现了\sum _{k=1}^{K}\Omega(f_{k})  这就是目标函数的后半段,防止模型过拟合。

 

求目标函数一般都是求目标函数最小化。

xgboost 是一个集成算法,一般表示为\sum _{k=1}^{K}f_{k}(x_{i})

提升树,是需要每加一棵树,效果都会提升。

从0棵树开始,逐渐增加树,对于样本i来说,用公式表达就是:

没有树的样本i    \hat{y_{i}}^{(0)}=0

只用一棵树取预测样本i    \hat{y_{i}}^{(1)}=f_{1}(x_{i})=\hat{y_{i}}^{(0)}+f_{1}(x_{i})

只用两棵树去预测样本i   \hat{y_{i}}^{(2)}=f_{2}(x_{i})=\hat{y_{i}}^{(1)}+f_{2}(x_{i})

......

用 n棵树去预测样本i      \hat{y_{i}}^{(t)}=f_{t}(x_{i})=\hat{y_{i}}^{(t-1)}+f_{t}(x_{i})

 

上面三个过程就是提升过程,表示第t轮的模型预测,结果保留第t-1次模型预测的结果,并加入一个新的函数。

作为提升,加上一个新的函数需要整体效果增加,所以加上一棵树的时候,需要使目标函数值下降。

训练过程就是要使目标函数下降的过程。

然后我们优化我们的目标函数,在每一棵树都优化时,得到以下公式:

         

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值