AdaBoost提升方法

提升方法的基本思想是通过改变训练样本的权重学习多个分类器,并将这些线性分类器进行线性组合,提高分类性能。

AdaBoost

  • 提高前一轮被分类错误样本的权值,降低前一轮被分类正确的权值;
  • 加大分类误差率小的弱分类器。

算法
输入:训练集 T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x N , y N ) } T=\{(x_1,y_1),(x_2,y_2),...,(x_N,y_N)\} T={(x1,y1),(x2,y2),...,(xN,yN)},其中 x i ∈ X ⊆ R n x_i\in X \subseteq R^n xiXRn y i ∈ Y ⊆ { − 1 , 1 } y_i\in Y \subseteq\{-1,1\} yiY{1,1};弱学习算法。
输出:最终分类器 G ( n ) G(n) G(n)

  1. 初始化训练数据的权值分布
    D 1 = ( w 1 1 , . . . , w 1 i , . . . , w 1 N ) , w 1 i = 1 N D_1=(w_11,...,w_1i,...,w_{1N}),w_1i=\frac{1}{N} D1=(w11,...,w1i,...,w1N),w1i=N1

  2. m = 1 , 2 , . . . , M m=1,2,...,M m=1,2,...,M

    • 使用具有权值分布 D m D_m Dm的训练集学习,得到基本分类器:
      G m ( x ) : X ⟶ { − 1 , 1 } G_m(x):X\longrightarrow\{-1,1\} Gm(x):X{1,1}
    • 计算 G m ( x ) G_m(x) Gm(x)在训练集上的分类误差率 :
      e m = ∑ i = 1 N P ( G m ( x i ) ≠ y i ) = ∑ i = 1 N w m i I ( G m ( x i ) ≠ y i ) = ∑ G m ( x i ) ≠ y i w m i e_m=\sum_{i=1}^{N}P(G_m(x_i)\neq y_i)\\=\sum_{i=1}^{N}w_miI(G_m(x_i)\neq y_i)\\=\sum_{G_m(x_i)\neq y_i}w_mi em=i=1NP(Gm(xi)=yi)=i=1NwmiI(Gm(xi)=yi)=Gm(xi)=yiwmi
    • 计算 G m ( x ) G_m(x) Gm(x)的系数:
      α m = 1 2 l o g 1 − e m e m \alpha_{m}=\frac{1}{2}log\frac{1-e_m}{e_m} αm=21logem1em
    • 更新训练集的权值分布
      D m + 1 = ( w m + 1 , 1 , . . . , w m + 1 , i , . . . , w m + 1 , N ) D_{m+1}=(w_{m+1,1},...,w_{m+1,i},...,w_{m+1,N}) Dm+1=(wm+1,1,...,wm+1,i,...,wm+1,N)
      w m + 1 , i = w m , i Z m e x p ( − α m y i G m ( x i ) ) , i = 1 , 2 , . . . , N w_{m+1,i}=\frac{w_{m,i}}{Z_m}exp(-\alpha_{m}y_{i}G_{m}(x_i)),{i=1,2,...,N} wm+1,i=Zmwm,iexp(αmyiGm(xi)),i=1,2,...,N
      其中 Z m Z_m Zm是规范化因子
      Z m = ∑ i = 1 N w m , i e x p ( − α m y i G m ( x i ) ) Z_m=\sum_{i=1}^{N}w_{m,i}exp(-\alpha_{m}y_{i}G_{m}(x_i)) Zm=i=1Nwm,iexp(αmyiGm(xi))
      它使得 D m + 1 D_{m+1} Dm+1成为一个概率分布,即 ∑ i = 1 N w m , i = 1 \sum_{i=1}^{N}w_{m,i}=1 i=1Nwm,i=1
  3. 构建基本分类器的线性组合
    f ( x ) = ∑ m + 1 M α m G m ( x ) f(x)=\sum_{m+1}^{M}\alpha_{m}G_{m}(x) f(x)=m+1MαmGm(x)
    得到最终分类器
    G ( x ) = s i g n ( f ( x ) ) = s i g n ( ∑ m = 1 M α m G m ( x ) ) G(x)=sign(f(x))=sign(\sum_{m=1}^{M}\alpha_{m}G_{m}(x)) G(x)=sign(f(x))=sign(m=1MαmGm(x))
    注:式①可写成
    w m + 1 , i = { w m , i Z m e − α m , G m ( x i ) = y i w m , i Z m e α m , G m ( x i ) ≠ y i w_{m+1,i}=\left\{\begin{aligned}\frac{w_{m,i}}{Z_m}e^{-\alpha_m},G_{m}(x_i)=y_i\\\frac{w_{m,i}}{Z_m}e^{\alpha_m},G_{m}(x_i)\neq y_i\\\end{aligned} \right. wm+1,i= Zmwm,ieαm,Gm(xi)=yiZmwm,ieαm,Gm(xi)=yi
    可知误分类样本在每一轮学习后权重会被放大 e 2 α m = 1 − e m e m e^{2\alpha_m}=\frac{1-e_m}{e_m} e2αm=em1em倍,系数 α m \alpha_m αm表示分类器 G m ( x ) G_m(x) Gm(x)的重要性,所有 α m \alpha_m αm之和并不等于1。

你可能感兴趣的:(机器学习常用算法,机器学习,算法,深度学习,数据挖掘)