adaboost、GBDT和xgboost对比

boosting用多种分类器对比效果

原理学习

Boosting主要就是集成学习的一种,是一种个体学习器间存在强依赖关系、必须串行生成的序列化方法。主要分为了adaboost、GBDT和xgboost这三种。

  • adaboost

adaboost是最著名的boosting算法。开始时所有的样本的权重相同,但是经过第一轮的分类总会出现错误,将错误的样本的权重加大,减小正确样本的权重,这样在下一轮的分类中就可以给予上轮出错样本更多的关注。这样,将结果再叠加到之前的结果中,就会因为权重大而对上轮结果造成的影响大,从而一步步修正结果,最终得到一个好的分类器。

  • GBDT

在学习GDBT的时候,感觉和之前的adaboost是截然不同的,adaboost感觉是在每一轮中都在跑同样的的决策树,但是GDBT则是在跑完全不同的树。GDBT从第二轮开始关注的是之前得出结果的一个残差,通过对残差的拟合最终得到一个较好的结果。在我的理解中,经过第一轮之后就已经不是对结果描述了,描述的是第一轮之后的相对误差。因为最终结果是多样的,但是经过上轮的结果,相对误差的种类则是减少的,从而也就是相当于降低了最终叶子的数量。

  • xgboost

感觉xgboost算法相对较难些,故对xgboost算法的理解相对来说比较浅。GBDT算法只利用了一阶的导数信息,xgboost对损失函数做了二阶的泰勒展开,并在目标函数之外加入了正则项对整体求最优解,用以权衡目标函数的下降和模型的复杂程度,避免过拟合。

小结

就我自己的学习理解看来,从不同的解决策略的角度来看,可将adaboost归为一列,将GDBT和xgboost归位一类。因为,adaboost是通过自适应,不断改变样本的权重的方法来实现的,后两者则都是通过不断的减小残差的方式来达到目的的。后两者即GDBT和xgboost有存在着区别,主要就是在于降低残差的方式,前者是只利用了一阶导,后者则利用了二阶泰勒展开。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值