Adaboost Algorithm Step

pt發表於2018-04-23

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 o {-1,1}$

    並且標記此次基本分類器的預測結果為$G_k(x^{(i)}), iin (1,2…n)$,仍然初始時$k=1$

  3. 計算基本分類器對應的誤差$e_k$ :

    ​ $$ e_k = sum_{i=1}^nw_{k,i}I(G_k(x^{(i)})
    eq 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}^Kalpha_k*G_k(x)$$

    最終的分類器即為$F(x) = sign(f(x)) = sum_{k=1}^Kalpha_k*G_k(x)$

相關文章