GBDT/xgboost总结

bagging和boosting

bagging和boosting是模型集成的两种方式,可以将很多弱分类器融合成一个强分类器
bagging:采用有放回的均匀采样,基分类器之间不存在依赖关系,可以并行处理,通过投票表决的方式来确定结果
boosting:根据错误率来进行采样,基分类器之间存在依赖关系,各棵树之间是串行的,后面的分类器在拟合前面结果的残差。通过将每棵树的结果累加来决定最终的结果。
boosting开始对所有的样本赋予相同的权重,在每次训练结束后,对失败的样本赋予较大的权重,采样和上一轮的训练结果有关。

偏差 & 方差、

泛化误差:偏差+方差+噪声
偏差:训练得到所有模型输出的平均值和真实模型的输出值之间的差距
方差:由不同的训练集训练出的模型输出之间的差距。
在这里插入图片描述在这里插入图片描述

偏差,方差和bagging,boosting的关系

bagging是对训练样本进行采样,得到不同的训练子集,然后通过不同的训练子集得到多个分类器,然后取这些分类器的平均,实在降低模型的方差。
boosting是迭代算法,后面的在拟合前面结果的残差,是在降低模型的偏差。


如何衡量一颗树很好?目标函数
以xgboost为例,在构造每棵树的过程中,我们可以计算出目标函数的最小值,然后以这个最小值为准则来递归构建树的每一层节点。

GBDT和随机森林的区别

  1. 随机森林可以由回归树或分类树组成,GBDT只能由回归树组成
    GDBT只能选择CART树,这是由于CART树的输出是一个分数,有助于优化算法
  2. 随机森林是有放回的均值采样,GBDT根据错误率来赋予权重的采样
  3. 随机森林的结果是通过投票表决的,GBDT的结果是将多颗树的结果累加确定的
  4. 随机森林中的树是并行生成的,GBDT中的树是串行生成的
  5. 随机森林是通过减小模型方差来提高性能,GBDT是通过减小模型的偏差来提高性能。
  6. 随机森林对异常值不敏感,GBDT对异常值非常敏感

xgboost

通过泰勒公式化简后的目标函数: o b j = ( ∑ i n g i ) w j + 1 2 ( ∑ i n h i ) w j 2 + r T obj=(\sum_i^n g_i)w_j+\frac{1}{2}(\sum_i^nh_i)w_j^2+rT obj=ingiwj+21(inhi)wj2+rT
通过求梯度我们可以找到最小的目标函数,构建第t颗树,计算Gain找到最好的分割点。
构建过程:
根据每一个特征对训练数据进行排序,保存为block结构,有多少个特征就有多少个block
在每个block内,根据目标函数下降最大,选择每个特征的最佳切割点,每个样本都计算出 g i , h i g_i,h_i gi,hi,然后通过找不同的切割点,计算出 G L , G R G_L,G_R GL,GR,然后计算出Gain,看Gain的正负看值不值得切分。
根据目标函数下降最大,选择最佳的特征分割点

GBDT和XGBOOST的区别:

  1. GBDT是机器学习算法,xgboost是算法的工程实现
  2. GBDT对损失函数的残差进行了一阶泰勒展开,xgboost进行了二阶泰勒展开
  3. xgboost对目标函数加入了正则化项,控制了模型的复杂度,缓解了模型过拟合的现象
  4. GBDT的基分类器只能选择CART树,xgboost还支持其他分类器
    xgboost的并行化表现在在构建每颗树的时候,对于不同的特征,xgboost在不同的线程中去分裂,并选择收益最大的特征分割点
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

石头猿rock

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

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

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

打赏作者

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

抵扣说明:

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

余额充值