AdaBoost提升方法

发布时间:2023年12月20日

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

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 xi?X?Rn y i ∈ Y ? { ? 1 , 1 } y_i\in Y \subseteq\{-1,1\} yi?Y?{?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?=(w1?1,...,w1?i,...,w1N?),w1?i=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=1N?P(Gm?(xi?)=yi?)=i=1N?wm?iI(Gm?(xi?)=yi?)=Gm?(xi?)=yi??wm?i
    • 计算 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?=21?logem?1?em??
    • 更新训练集的权值分布
      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?=Zm?wm,i??exp(?αm?yi?Gm?(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=1?Nwm,i?exp(?αm?yi?Gm?(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=1N?wm,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?αm?Gm?(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?αm?Gm?(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?=? ? ??Zm?wm,i??e?αm?,Gm?(xi?)=yi?Zm?wm,i??eαm?,Gm?(xi?)=yi??
    可知误分类样本在每一轮学习后权重会被放大 e 2 α m = 1 ? e m e m e^{2\alpha_m}=\frac{1-e_m}{e_m} e2αm?=em?1?em??倍,系数 α m \alpha_m αm?表示分类器 G m ( x ) G_m(x) Gm?(x)的重要性,所有 α m \alpha_m αm?之和并不等于1。

文章来源:https://blog.csdn.net/PyDarren/article/details/135114782
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。