高级算法梳理之xgbBoost

本文详细介绍了XGBoost算法的原理,包括其损失函数、分裂节点算法、正则化、缺失值处理、优缺点及参数介绍,并通过案例分析展示了数据预处理和分类应用。XGBoost是一种高效的梯度提升决策树方法,通过优化损失函数和正则化项来防止过拟合,支持并行处理,广泛应用于数据竞赛和机器学习任务。
摘要由CSDN通过智能技术生成

本文将重点解释竞赛圈里的“大杀器”,xgboost算法。本文主要结构包括xgboost内容讲解,以及案例分析。

1、XGB算法原理

XGB算法有陈天奇博士提出,是GBDT算法的升级版,在效率和方法上都做了改良。此算法的基本思想就是不断地添加树(函数),不断地进行特征分裂来生长一棵树,每次添加一个树,去拟合上次预测的残差(与GBDT一样)。当我们训练完成得到k颗树,我们要预测一个样本的分数,其实就是根据这个样本的特征,在每棵树中会落到对应的一个叶子节点,每个叶子节点就对应一个分数,最后将每棵树对应的分数加起来就是样本的预测值。
那么XGB的集成表示是什么?怎么预测?求最优解的目标是什么?
在这里插入图片描述
在XGBoost里,每棵树是一个一个往里面添加的,每添加一棵树,预测的残差就会减小,效果都能够提升,下面看看XGBoost的集成表示(核心
在这里插入图片描述
一开始树是0,然后往里面添加树(函数),然后往里面添加树,相当于添加了一个函数,在添加第二颗树,相当于又多了一个函数。。。以此类推,这里需要保证加入新的函数能够提升整体表达效果。也就是说每次新加的树都要使目标函数(损失)的值下降。
如果叶子节点的个数太多,就会有过拟合的风险,对此限制叶子节点的个数,所以在原来目标函数里面要加上一个惩罚项
在这里插入图片描述
举个简单的例子,看看惩罚项是如何计算的,
在这里插入图片描述
上图中一共三个叶子,权重分别为2,0.1,-1,带入惩罚项公式,惩罚力度 γ \gamma γ λ \lambda λ是认为设定的。XGB的目标函数就变成了下面的公式,由自身的损失函数和正则化惩罚项组成
在这里插入图片描述
下面对XGB算法的理论推导进行介绍

2、损失函数

对于回归问题,我们常用的损失函数是MSE,即:
在这里插入图片描述
对于分类问题,我们常用的损失函数是对数损失函数:
在这里插入图片描述
XGBoost目标函数定义为:
在这里插入图片描述
在这里插入图片描述
目标函数由两部分构成,第一部分用来衡量预测分数和真实分数的差距,另一部分则是正则化项。正则化项同样包含两部分,T表示叶子结点的个数,w表示叶子节点的分数。γ可以控制叶子结点的个数,λ可以控制叶子节点的分数不会过大,防止过拟合。
正如上文所说,新生成的树是要拟合上次预测的残差的,即当生成t棵树后,预测分数可以写成:

在这里插入图片描述
然后将目标函数改写成:
在这里插入图片描述
很明显,我们接下来就是要去找到一个f_t能够最小化目标函数。XGBoost的想法是利用其在f_t=0处的泰勒二阶展开近似它。所以,目标函数近似为:
在这里插入图片描述
其中g_i为一阶导数,h_i为二阶导数:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值