您的位置:首页 > 其它

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

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

相同点

三者的相同点,显然都是利用了提升的思想,每一棵树的生成都是建立在上一棵树的基础之上。

细节方法,都有一些预剪枝,正则项,衰减因子,降采样等等。详细的请看之前的博文。

不同点

Adaboost

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

GBDT

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

Xgboost

利用了二阶信息

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

并行、多核计算

同时Xgboost在实现中使用了并行/多核计算,树的生成是并行的(这里是指选择最优的划分点上),训练速度更快。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: