XGBoost之切分点算法(贪婪算法、分位点算法、权重分位点算法、稀疏数据切分算法)之一(含例子解释)

 

需要注意是:引入的分割不一定会使得情况变好,因为在引入分割的同时也引入新叶子的惩罚项。所以通常需要设定一个阈值,如果引入的分割带来的增益小于一个阀值的时候,我们可以剪掉这个分割。此外在XGBoost的具体实践中,通常会设置树的深度来控制树的复杂度,避免单个树过于复杂带来的过拟合问题。

关于精确贪心算法和近似分割算法的小结
QA:为什么近似分割算法比精确贪心算法要快?
首先我们得捋一下这两个寻找最佳分裂点的时候都有哪些公共的时间开销

预排序:每个特征都是按照排序好的顺序存储的,这一部分在存储的时候就已经完成了
计算所有样本的一阶导G和二阶导L,这个过程只需要进行一次
对样本的G和L累加求和,这个过程也只需要进行一次,为了后续做差加速
精确贪心算法中是将所有样本G、L累加
近似分割算法中是按桶累加
算法中的两个for循环,第一个循环是遍历所有特征,这一步两个算法相同
不同的开销在于,两个算法中第二个for循环中:

精确贪心算法遍历的所有样本 O(#feature x # samples)
近似贪心算法遍历了所有桶 : O(#feature x # bins )
因为桶的数目远小于样本数,所以得以加速
转载:https://blog.csdn.net/dpengwang/article/details/87910480

XGBoost之切分点算法

  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值