机器学习——集成学习之Boosting

整理自:

https://blog.csdn.net/woaidapaopao/article/details/77806273?locationnum=9&fps=1

  • AdaBoost
  • GBDT
  • Xgboost

1.AdaBoost

Boosting的本质实际上是一个加法模型,通过改变训练样本权重学习多个分类器并进行一些线性组合。而Adaboost就是加法模型+指数损失函数+前项分布算法。Adaboost就是从弱分类器出发反复训练,在其中不断调整数据权重或者是概率分布,同时提高前一轮被弱分类器误分的样本的权值。最后用分类器进行投票表决(但是分类器的重要性不同)。


2.GBDT

将基分类器变成二叉树,回归用二叉回归树,分类用二叉分类树。和上面的Adaboost相比,回归树的损失函数为平方损失,同样可以用指数损失函数定义分类问题。但是对于一般损失函数怎么计算呢?GBDT(梯度提升决策树)是为了解决一般损失函数的优化问题,方法是用损失函数的负梯度在当前模型的值来模拟回归问题中残差的近似值。 
注:由于GBDT很容易出现过拟合的问题,所以推荐的GBDT深度不要超过6,而随机森林可以在15以上。


3.Xgboost

这个工具主要有以下几个特点:

  • 支持线性分类器
  • 可以自定义损失函数,并且可以用二阶偏导
  • 加入了正则化项:叶节点数、每个叶节点输出score的L2-norm
  • 支持特征抽样
  • 在一定情况下支持并行,只有在建树的阶段才会用到,每个节点可以并行的寻找分裂特征。
上一篇:集成学习之Boosting —— Gradient Boosting实现


下一篇:C++11--20分钟了解C++11 (上)