原理介绍:
(1)初始化训练数据(每个样本)的权值分布:如果有N个样本,则每一个训练的样本点最开始时都被赋予相同的权重:1/N。
(2)训练弱分类器。具体训练过程中,如果某个样本已经被准确地分类,那么在构造下一个训练集中,它的权重就被降低;相反,如果某个样本点没有被准确地分类,那么它的权重就得到提高。同时,得到弱分类器对应的话语权。然后,更新权值后的样本集被用于训练下一个分类器,整个训练过程如此迭代地进行下去。
(3)将各个训练得到的弱分类器组合成强分类器。各个弱分类器的训练过程结束后,分类误差率小的弱分类器的话语权较大,其在最终的分类函数中起着较大的决定作用,而分类误差率大的弱分类器的话语权较小,其在最终的分类函数中起着较小的决定作用。换言之,误差率低的弱分类器在最终分类器中占的比例较大,反之较小。
算法流程:
(1)初始化训练数据的权值分布:给每个训练样本(x1,x2,….,xN)分配权重,初始权重w1均为1/N。
D1 = {w11,w12,....,w1i,.....,w1N}, i = 1,2,3, ..... , N w1i = 1/N
(2)对于要生成M个基学习器,则对于m = 1,2,.....,M:
(a)、针对带有权值的样本进行训练,得到模型Gm(初始模型为G1):
( b )、 计算Gm(x)在训练数据集上的分类误差率:
上式还可以写为:
#这里,Wmi表示第m轮中第i个实例的权值,Wm1+Wm1+......+Wmn = 1, 这表明,Gm(x)在加权的训练数据集上的分类误差率是被Gm(x)误分类样本的权值之 和,由此可以看出数据权值分布Dm与基本分类器Gm(x)的分类误差率的关系
(c)、计算基学习器Gm(x)的系数:+
#这里的对数是自然对数
(d)、更新训练数据集的权重分布:
其中Zm为:
(3)构建基本分类器的线性组合:
得到最终的分类器: