集成方法-Boosting

2018-07-31  本文已影响6人  Amica

提升(Boosting)是一个迭代的过程,用来自适应地改变训练样本的分布,使得基分类聚焦在那些很难分的样本上,与Bagging不同的是,Boosting给每个训练样本赋一个权值,而且可以在每一轮提升过程结束时自动调整权值。

1、Boosting的基本思想

2、AdaBoost算法

一开始我的AdaBoost的理解存在一定的偏差,我错误的以为通过前一轮的训练增大那些预测错误的样本的权重是为了使它们再下一轮的训练中更容易被选取作为训练集。但是通过查阅相关资料和看相关代码,发现并不是我想的那样。在网上也看到跟我存在相同理解的人也有不少。
这里有几点需要说明的是:

3 AdaBoost迭代算法的步骤

1、初始化训练数据的权值分布:
对于有N个样本的训练集而言,每一个训练样本最开始都被赋予相同的权值:1/N
2、训练弱分类器:
具体训练过程中,如果某个样本点已经被准确的分类,那么在构造下一个训练集时,它的权值就被降低;与此相反,如果某个样本点被错误的分类,那么它的权值就得到提高。紧接着,更新过的权值的样本集被用于训练下一个学习器。
3、将各个训练得到的弱学习器组合成强学习器:
各个弱学习器的训练过程结束之后,加大分类误差率小的弱学习器的权重,使其在最终的分类函数中起较大的决定作用,降低分类错误率大的弱分类器的权重,使它们在最终的分类函数中起较小的决定作用。
预测结果分布和方差、偏差的关系.png

前面总结的Bagging方法能减少训练方差(Variance),对于不剪枝的决策树,神经网络学习器具有良好的集成效果,而Boosting方法能够减少偏差(Bias),能够基于泛化能力较弱的学习器构造强学习器。

参考资料:
Adaboost原理
我对adaboost的一点理解
提升算法之Adaboost

上一篇 下一篇

猜你喜欢

热点阅读