\space \space \space \space \space AdaBoost算法是一种分类器算法,其基本思想是首先将训练数据训练成比随机猜测效果略好的弱分类器,然后按照分类器分类正确时减少其权重,分类错误时增强其权重的原则构建强分类器。大致的分类流程如下:
AdaBoost算法的具体实现步骤如下:
(1) 选定训练样本 ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x n , y n ) (x1,y1), (x2,y2), ...,(x_n,y_n) (x1,y1),(x2,y2),...,(xn,yn)
\space \space \space \space \space y i y_i yi 是否为0表示其是否为负样本,即分类错误; n n n为训 练样本的总数量。
(2) 初始化权重:均值初始化
\space \space \space \space W 1 W_{1} W1 = { w 11 w_{11} w11, w 12 w_{12} w12, w 13 w_{13} w13,… w 1 n w_{1n} w1n},其中 w 1 i = 1 / n w_{1i}=1/n w1i=1/n, i = 1 , 2 , 3 , . . . . n i=1,2,3,....n i=1,2,3,....n。
(3) 循环 j = 1 : m j=1:m j=1:m
\space \space \space \space 使用权重 W j W_j Wj对训练数据进行训练得到弱分类器 G j G_j Gj,并计算所有弱分类器上的分类误差 ϵ \epsilon ϵ。误差可进行指定,若小于误差可跳出循环,一般设置分类误差为0.5:
\space \space \space \space 其中当 x x x=0时, I ( x ) I(x) I(x)=0;当 x x x=1时, I ( x ) I(x) I(x)=1。
(4) 计算分类的重要程度系数 (由分类误差决定):
(5) 更新权重(由分类误差决定)并跳至第(3)步:
\space \space \space \space W j W_{j} Wj = { w j + 1 , 1 w_{j+1,1} wj+1,1, w j + 1 , 2 w_{j+1,2} wj+1,2, w j + 1 , 3 w_{j+1,3} wj+1,3,… w j + 1 , n w_{j+1,n} wj+1,n},
\space \space \space \space 每一个样本的权重定义如下:
\space \space \space \space 其中, Z m Z_m Zm是批规范化因子,即
循环结束后最终AdaBoost分类器的形式如下