http://blog.csdn.net/wangxin110000/article/details/38900437
Adaboost是一种弱分类器转化为强分类器的算法,其对于每个弱分类器赋予一个权重,最终将这些带权弱分类器线性组合成一个强分类器。
问题就转化为如何获得权值?
基本的步骤如下
Step1:为每个样本赋予一个权值
Step2:利用训练数据第一个弱分类器
Step3:得到第一个弱分类器的分类误差率
Step4:利用分类误差率得到第一个弱分类器的权重
Step5:对样本的权重进行更新
Step6:训练下一个弱分类器,直到都训练完毕
Step7:将带权弱分类器进行线性组合得到一个强分类器
这里有人肯定会困惑,对于样本赋予一定的权重是什么意思?对于分类器赋予权重尚且可以理解为一定的投票机制,对样本为啥要赋予权重?
在这里对样本赋予权重实际是改变样本的分布情况。如果现在一个样本在弱分类器1中被分错了,那么我提升该样本的概率,那么该样本会被下一个弱分类器加强关注,他就有极大的可能被分到正确的一类。换句话说,分类问题被很多弱分类器分而治之。最终将许多带权弱分类器组合,相当于投票,每个分类器有一定的权重,得到一个正确的结果
Adaboost是数据驱动,错误驱动的分类器,某种意义有类似于神经网络的权值更新方法。