提升方法:AdaBoost算法

  • 算法流程
  • 输入:训练数据集T={(x_1,y_1),(x_2,y_2),...,(x_N,y_N)},其中x_i\in\chi\subseteq R^ny_i\in Y=\{+1,-1\};弱学习算法
  • 输出:最终分类器 G(x)
  1. 初始化训练数据的权值分布

    D_1=(w_{11},...,w_{1i},...,w_{1N})\\w_{1i}=\frac{1}{N}\qquad i=1,2,...,N
  2. 对m=1,2,....,M

    a. 使用权值分布D_m的训练数据集学习,得到基本分类器

    G_m(x):\chi\rightarrow\{-1,+1\}

    b. 计算G_m(x)在训练数据集上的分类误差率

    \begin{aligned}e_m&=\displaystyle\sum_{i=1}^NP(G_m(x)\neq y_i)\\&=\displaystyle\sum_{i=1}^Nw_{mi}I(G_m(x)\neq y_i)\end{aligned}

    c. 计算G_m(x)的系数

    \alpha_m=\frac{1}{2}ln\frac{1-e_m}{e_m}

    d. 更新训练数据季的权值分布

    D_{m+1}=(w_{{m+1},1},...,w_{{m+1},i},...,w_{{m+1},N})\\w_{m+1}=\frac{w_mi}{Z_m}exp(-\alpha_my_iG_m(x_i)),i=1,2,3,...,N\\Z_m=\displaystyle\sum_{i=1}^{N}w_{mi}exp(-\alpha_my_iG_m(x_i))
  3. 构成基本分类器的线性组合f(x)=\displaystyle\sum_{m=1}^M\alpha_mG_m(x)

得到最终分类器

G(x)=sign(f(x))

评论区 0