AdaBoost--从原理到实现
2017-08-29 15:08
246 查看
一.引入
对于Adaboost,可以说是久闻大名,据说在Deep Learning出来之前,SVM和Adaboost是效果最好的 两个算法,而Adaboost是提升树(boostingtree),所谓“提升树”就是把“弱学习算法”提升(boost)为“强学习算法”(语自《统计学习方法》),而其中最具代表性的也就是Adaboost了,貌似Adaboost的结构还和Neural Network有几分神似,我倒没有深究过,不知道是不是有什么干货
二.过程
(from PRML)
这就是Adaboost的结构,最后的分类器YM是由数个弱分类器(weak classifier)组合而成的,相当于最后m个弱分类器来投票决定分类,而且每个弱分类器的“话语权”α不一样。
这里阐述下算法的具体过程:
具体说来,整个Adaboost 迭代算法就3步:
初始化训练数据的权值分布。如果有N个样本,则每一个训练样本最开始时都被赋予相同的权重:1/N。
训练弱分类器。具体训练过程中,如果某个样本点已经被准确地分类,那么在构造下一个训练集中,它的权重就被降低;相反,如果某个样本点没有被准确地分类,那么它的权重就得到提高。然后,权重更新过的样本集被用于训练下一个分类器,整个训练过程如此迭代地进行下去。
将各个训练得到的弱分类器组合成强分类器。各个弱分类器的训练过程结束后,加大分类误差率小的弱分类器的权重,使其在最终的分类函数中起着较大的决定作用,而降低分类误差率大的弱分类器的权重,使其在最终的分类函数中起着较小的决定作用。换言之,误差率低的弱分类器在最终分类器中占的权重较大,否则较小。
1.初始化所有训练样例的权重为1 / N,其中N是样例数
2.for m=1,……M:
a).训练弱分类器ym(),使其最小化权重误差函数(weighted error function):b)接下来计算该弱分类器的话语权α:
c)更新权重:
其中Zm:
是规范化因子,使所有w的和为1。(这里公式稍微有点乱)
3.得到最后的分类器:
相关文章推荐
- 机器学习方法:AdaBoost--从原理到实现
- AdaBoost--从原理到实现
- AdaBoost--从原理到实现
- AdaBoost从原理到实现
- AdaBoost--从原理到实现
- 随机森林,GBDT,Adaboost原理及python实现
- AdaBoost--从原理到实现
- AdaBoost原理,算法实现
- adaboost原理和实现
- chapter7 机器学习之元算法(adaboost)提高分类性能从原理到实现
- Adaboost从原理到实现(Python)
- 机器学习Python实现AdaBoost
- boost::bind实现原理学习
- boost 库 enable_shared_from_this 实现原理分析
- boost中模板函数addressof()实现原理
- Boost 库 enable_shared_from_this 实现原理分析
- Adaboost原理、应用
- 转:Adaboost 算法的原理与推导
- 机器学习(20)之Adaboost算法原理小结
- Adaboost原理、算法以及应用