Adaboost Algorithm Step

Adaboost Algorithm Step

  1. 给定一个数据集:

    ​ $$ D=\{(x^{(1)}, y^{(1)}), (x^{(2)}, y^{(2)}) … (x^{(n)}, y^{(n)})\} $$

    并为数据集初始化一个对应的权重分布$W_{k,i}$,得:

    ​ $$W_{k,i} = (w_{k,1}, w_{k,2} … w_{k,n})$$

    初始时设置$k=1$,且初始时权重向量中的每一项的值为$w_{1i}=\frac{1}{n}, i=1,2…n$

  2. 对具有权重分布的数据集$D$进行学习,得到基本分类器,记为 $G_k(x):X \to \{-1,1\}$

    并且标记此次基本分类器的预测结果为$G_k(x^{(i)}), i\in (1,2…n)$,仍然初始时$k=1$

  3. 计算基本分类器对应的误差$e_k$ :

    ​ $$ e_k = \sum_{i=1}^nw_{k,i}I(G_k(x^{(i)})\neq y^{(i)}) $$

    然后根据误差计算基本分类器的 $G_k(x)$ 的权重值 $\alpha_k$ :

    ​ $$\alpha_k = \frac{1}{2}log(\frac{1-e_k}{e_k})$$

  4. 根据第$k$轮的基本分类器$G_k(x)$的权重值更新第$k+1$轮的数据集权重$W_{k+1,i}$:

    ​ $$w_{k+1,i}=\frac{w_k,i}{Z_k}exp(-\alpha_k*y^{(i)}*G_k(x^{(i)})) $$

    其中$Z_k$为规范化因子,为的是将权重值映射到区间$(0,1)$

    ​ $$where: Z_k = \sum_{i=1}^nw_{k,i}*exp(-\alpha_k*y^{(i)}*G_k(x^{(i)}))$$

  5. 进行了$K$轮的更新后,得到基本分类器的线性组合

    ​ $$f(x) = \sum_{k=1}^K\alpha_k*G_k(x)$$

    最终的分类器即为$F(x) = sign(f(x)) = \sum_{k=1}^K\alpha_k*G_k(x)$

    原文作者:pt
    原文地址: https://segmentfault.com/a/1190000014535663
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞