- 簽證留學(xué) |
- 筆譯 |
- 口譯
- 求職 |
- 日/韓語 |
- 德語
下面我們將要討論AdaBoost背后的一些理論,并揭示其效果不錯的原因。
2. 訓(xùn)練算法:基于錯誤提升分類器的性能
能否使用弱分類器和多個實例來構(gòu)建一個強(qiáng)分類器?這是一個非常有趣的理論問題。這里的“弱”意味著分類器的性能比隨機(jī)猜測要略好,但是也不會好太多。這就是說,在二分類情況下弱分類器的錯誤率會高于50%,而“強(qiáng)”分類器的錯誤率將會低很多。AdaBoost算法即脫胎于上述理論問題。
AdaBoost是adaptive boosting(自適應(yīng)boosting)的縮寫,其運行過程如下:訓(xùn)練數(shù)據(jù)中的每個樣本,并賦予其一個權(quán)重,這些權(quán)重構(gòu)成了向量D。一開始,這些權(quán)重都初始化成相等值。首先在訓(xùn)練數(shù)據(jù)上訓(xùn)練出一個弱分類器并計算該分類器的錯誤率,然后在同一數(shù)據(jù)集上再次訓(xùn)練弱分類器。在分類器的第二次訓(xùn)練當(dāng)中,將會重新調(diào)整每個樣本的權(quán)重,其中第一次分對的樣本的權(quán)重將會降低,而第一次分錯的樣本的權(quán)重將會提高。為了從所有弱分類器中得到最終的分類結(jié)果,AdaBoost為每個分類器都分配了一個權(quán)重值alpha,這些alpha值是基于每個弱分類器的錯誤
率進(jìn)行計算的。其中,錯誤率ε的定義為:
而alpha的計算公式如下:
AdaBoost算法的流程如圖1所示。
圖1 AdaBoost算法的示意圖。左邊是數(shù)據(jù)集,其中直方圖的不同寬度表示每個樣例上的不同權(quán)重。在經(jīng)過一個分類器之后,加權(quán)的預(yù)測結(jié)果會通過三角形中的alpha值進(jìn)行加權(quán)。每個三角形中輸出的加權(quán)結(jié)果在圓形中求和,從而得到最終的輸出結(jié)果
計算出alpha值之后,可以對權(quán)重向量D進(jìn)行更新,以使得那些正確分類的樣本的權(quán)重降低而錯分樣本的權(quán)重升高。D的計算方法如下。
如果某個樣本被正確分類,那么該樣本的權(quán)重更改為:
而如果某個樣本被錯分,那么該樣本的權(quán)重更改為:
在計算出D之后,AdaBoost又開始進(jìn)入下一輪迭代。AdaBoost算法會不斷地重復(fù)訓(xùn)練和調(diào)整權(quán)重的過程,直到訓(xùn)練錯誤率為0或者弱分類器的數(shù)目達(dá)到用戶的指定值為止。
接下來,我們將建立完整的AdaBoost算法。在這之前,我們首先必須通過一些代碼來建立弱分類器及保存數(shù)據(jù)集的權(quán)重。
責(zé)任編輯:admin