Adaboost Algorithm Step
- 給定一個資料集:
$$ 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$
- 對具有權重分佈的資料集$D$進行學習,得到基本分類器,記為 $G_k(x):X o {-1,1}$
並且標記此次基本分類器的預測結果為$G_k(x^{(i)}), iin (1,2…n)$,仍然初始時$k=1$
- 計算基本分類器對應的誤差$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})$$
- 根據第$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)}))$$
- 進行了$K$輪的更新後,得到基本分類器的線性組合
$$f(x) = sum_{k=1}^Kalpha_k*G_k(x)$$
最終的分類器即為$F(x) = sign(f(x)) = sum_{k=1}^Kalpha_k*G_k(x)$