机器学习-->集成学习-->Xgboost,GBDT,Adaboost总结

来源:互联网 发布:bigemap软件 编辑:程序博客网 时间:2024/06/11 07:19

之前的博文中已经深入详细的总结了集成学习中各种提升方法,包括Xgboost,GBDT,Adaboost。本篇博文将把这三种最常见的提升方法串在一起,大概的总结下三者的区别和联系。所有总结都是我个人的看法,如有不对还望指正。

相同点

三者的相同点,显然都是利用了提升的思想,每一棵树的生成都是建立在上一棵树的基础之上。
细节方法,都有一些预剪枝,正则项,衰减因子,降采样等等。详细的请看之前的博文。

不同点

Adaboost

Adaboost会对每个样本赋予权值,每次被分错的样本权重会得到提高,以便下一棵分类器会更加关注这些被分错的样本,反之权重会降低。每个分类器的错误率决定了这个分类器在最终分类器中的权重。

GBDT

不同于Adaboost只是对正确,错误样本进行加权。GBDT会定义一个lossFunction,每次生成的分类器都是沿着前面所有分类器的负梯度方向(一阶导数)建立起来的。

Xgboost

  • 利用了二阶信息
    Xgboost同样会定义一个lossFunction,不同与GBDT只用到一阶导信息,Xgboost会利用泰勒展式对lossFunction展开到二阶,这样就利用到了二阶信息,可以更快的在训练集上收敛。

  • 并行、多核计算
    同时Xgboost在实现中使用了并行/多核计算,树的生成是并行的(这里是指选择最优的划分点上),训练速度更快。

阅读全文
0 0
原创粉丝点击