1. 程式人生 > >提升方法AdaBoost演算法

提升方法AdaBoost演算法

1、提升方法

提升方法就是從弱學習演算法出發,反覆學習,得到一系列弱分類器(又稱為基本分類器),然後組合弱分類器,構成一個強分類器。大多數提升的方法都是改變訓練資料的的概率分佈(訓練資料的權值分佈)。

2、提升方法相關問題

(1)在每一輪如何改變訓練資料的權值或者概率分佈?

Adaboost的做法就是,提高那些前一輪弱分類器錯誤分類樣本的權值,而降低那些被正確分類樣本的權值。

(2)如何將弱分類器組合成一個強分類器?

Adaboost採取加權多數表決的方法。加大分類誤差率小的弱分類器的權值,使其在表決中起較大的作用,減小弱分類器誤差率大的弱分類器的權值,使其在表決中起較小的作用。

3、AdaBoost演算法

訓練資料
序號 1 2 3 4 5 6 7 8 9 10
x 0 1 2 3 4 5 6 7 8 9
y 1 1 1 -1 -1 -1 1 1 1 -1

步驟:
(1)初始化資料的權值D1={w1,...,wN}
一共10個樣本,所以
w1=w2=...=w10=1N=0.1
(2)在權值分佈為D1上構建基本分類器G1(x

)如下

(1)G1(x)={1,x<2.51,x>2.5
因為2.5作為分界線使得分類的誤差最低。
注意,基本分類器Gm(x)的分類誤差的計算如下。即基本分類器對整個資料劃分,劃分不正確的樣本的權值之和。
(2)em=P(Gm(xi)yi)=Gm(xi)yiwmi
(3)計算G1(x)在資料集上的誤差
因為G1(x)分類器的劃分界限是5.5,即序號為{7,8,9}的3個樣本被錯誤分類,他們的權值都是0.1,所以
e1=0.3

(3)計算G1(x)的係數,公式如下
(3)αm=12log1emem
注意:公式(3)是個遞減函式,意味著分類器的誤差越大,其權重係數越小,在表決中作用越小。
所以,α1=12log1e1e1=0.4236
(4)更新訓練資料的權值分佈,公式如下