xgboost算法_XGBoost算法

由于在Dream Challenge的比赛中提取中众多feature后采用的分类器是xgboost,取得了不错效果,记录下对xgboost的理解。

xgboost是GBDT的改进,既可以用于分类也可以用于回归的问题。

boosting的集成学习,下一棵决策树的输入样本与前面的决策树的训练和预测相关。 Random Forest中各个决策树是独立的。

集成学习方法是指将多个学习模型组合,以获得更好的效果,使组合后的模型具有更强的泛化能力,xgboost是以分类回归(CART树)进行组合。

预测模型

,其中
为树的总数,
表示第
个树,
表示样本的预测结果,损失函数

xgboost的思路,希望建立

个回归树,使得树群的预测值尽量接近真实值。xgboost不是简单的将几个CART树进行组合,而是一种加法模型,将模型上次预测(由
颗树组合成的模型)产生的误差作为参考,进行下一棵树的建立,使得每加入一棵树,其损失函数不断降低。

加法模型案例,将模型的预测值与实际值的残差作为下一棵树的分裂参考

c9a4b5fcade02eb6113166cb4159c3c8.png

加法策略表示为初始化时,对样本

预测结果为
:

往模型中加入第一棵树

往模型中加入第二棵树

往模型中加入第

棵树

每次加入树时,损失函数会发生变化,加入第

棵树时,前面的树已经训练完成,前面的树的参数都成为已知常数(当前最优,贪心策略)

损失函数采用均方误差,加入

棵树的损失函数为

0ce8895dfca0ac93dcbe84204850bf99.png

对于目标函数中的正则项(复杂度)部分,可以从单一的树考虑,每棵回归树可以写成关于

的参数模型

为叶子节点的得分值,
表示样本
对应的叶子节点,
为该树的叶子节点个数。

复杂度可写成

21a47d32fd6839f9260b4473449d7043.png

最终的目标函数可写为:

a130a50789f963331fa5dcba1ebdfc51.png

7a08b189aa14770da3a480ddd6cb4d6c.png

在加入 第

棵时,我们需要找到
来优化上式目标,利用泰勒公式展开式,

9b30075a4462ed14c6d2eda60e49325c.png

0d43fb764f6915c8a629cd888b37c262.png

进行近似替换。进行变量替换,去掉常数项

7090a09f25ea1d8a419975a59c808e02.png

将目标函数全部换成在第

棵树叶子节点得形式,目前对于

8558d002b92f214bb7126b14820b8d42.png

可以看作是每个样本在第第

棵树叶子节点得分值相关函数的结果之和,可以从第
棵树的叶子节点表示

39322b2da13c62143e3fdac1568a9373.png

c13b033112faec39b3ffc3f88f0cb64f.png

表示第

个叶子节点上的样本,
为第
个叶子节点的得分值

b924119d39cfa4b4f20b834a356b4e87.png

2cda0464fa05d1e695418783f92ba110.png

36951d2601f33a15cb36c791997c2ad7.png

参数为

,对
求导等于0

则有

024d766b038b67a46f7c70f27daac78c.png

1e48c7fbfa44f1f82b2485944cc050b8.png

目标函数为

eb53b5650d320a2e678dd0e435cb608c.png

ea1775719c72eef8c99fe1542290bcf0.png

605b93f08a5a1666956f8f0be145817f.png

xgboost需要求解

,叶子节点的值,同层级节点可并行,具体的对于某个节点,节点内选择最佳分裂点,候选分裂点计算增益用多线程并行。

对离散取值可以枚举,对连续值可划分区间,对于确实样本可以假设特征的缺失的样本属于右子树和左子树,并在不缺失的样本上进行迭代,分别计算缺失样本属于右子树和左子树的增益,选择增益最大的方向为缺失数据的默认方向。

除了在目标函数中引入正则项,为了防止过拟合,xgboost引入缩减和列采样,通过每一步的boosting中引入缩减系数,降低每个树和叶子对结果的影响。列采样借鉴随机森林的思想。

模型学习的 关键在于如何寻找最优分割点,第一种方法称为基本精确贪心算法(exact greedy algorithm):枚举所有特征的所有可能划分,寻找最优分割点。该算法要求为连续特征枚举所有可能的切分,这个对计算机要求很高,为了有效做到这一点,XGBoost首先对特征进行排序,然后顺序访问数据,累计loss reduction中的梯度统计量。

08c2dfb497719ebbac4c4829b07b1f51.png

寻找最优分割点,全局近似和局部近似,通常情况下特征的百分数使得数据均匀分布在数据上。

fd0e381cc82a7832969ce30a3229bec5.png

文章参考:

机器学习--boosting家族之XGBoost算法 - 理想几岁 - 博客园​www.cnblogs.com
13e41c35a6778232b4f9cf48f0ee4976.png
https://www.jianshu.com/p/a62f4dce3ce8​www.jianshu.com
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值