AdaBoost.M1(Freund and Schapire, 1997)

假定我們的問題是一個分類問題,要預測的變量Y={-1, 1}, X是解釋變量,樣本的個數是N.

第一步,給每個樣本一個初始的權重

\omega _i = \frac{1}{N},i=1,2,\cdots, N

第二步,當m從1到M循環的時候,執行以下步驟:

1. 基於權重\omega _i, 利用訓練集得到相應的分類器G_m(x);

2. 計算錯誤率:

err_m = \frac{\sum_{i=1}^N \omega_i I(y_i \neq G_m(x_i))}{\sum_{i=1}^N \omega_i}

3. 計算權重係數

\alpha_m = log((1-err_m)/err_m)

#此時錯誤率越高,權重係數越小,但是錯誤率優於0.5(隨機猜測), 意味着權重係數是正數。

4. 將權重更改爲

\omega_i \leftarrow \omega_i \cdot exp[\alpha_m \cdot I(y_i \neq G_m(x_i))], i=1,2,\cdots, N

#此時錯誤率越高,權重係數越小,對應的權重越小,但是分錯的樣本在下次循環中會獲得更高的權重。

第三步,輸出

G(x)=sign[\sum_{m=1}^M \alpha_m G_m(x)]

#此時,分類越好的,其錯誤率越低,對應的權重係數越大,在最終的分類器中所佔的權重越大!

 #來自於ESL第10章的第一個算法。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章