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章的第一个算法。

 

 

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