1. 程式人生 > >AdaBoost演算法原理及實現

AdaBoost演算法原理及實現

AdaBoost演算法

輸入:訓練資料集T={(x1,y1),(x2,y2),,(xN,yN)},其中xiXRnyi{1,+1};弱學習演算法;
輸出:最終分類器G(x)
(1)初始化訓練資料集的權值分佈。我們假設訓練資料集具有均勻的權值分佈,也就是說每個訓練樣本在基分類器的學習中作用相同。

D(1)=(w1(1),w2(1),,wN(1)),wi(1)=1N,i=1,2,,N
每個w的上標表示當前迭代次數,與D的下標保持一致;w的下標表示第幾個權值,與位置保持一致。
(2)對
m=1,2,,M
(M表示迭代次數,每迭代一次產生一個基學習器,最終生成M個學習器)
(a)使用具有權值分佈Dm的訓練資料集學習,得到基分類器
Gm(x):X{1,+1}
(b)計算Gm(x)在訓練資料集上的分類誤差
errm=P(Gm(xi)yi)=i=1Nwi(m)I(Gm(xi)yi)
這裡,wi(m)表示第m輪迭代中第i個例項的權值,i=1Nwi(m)=1。這說明Gm(x)在帶權重的訓練資料集上的分類誤差是被
Gm(x)
誤分類樣本的權值之和。
(c)計算Gm(x)的係數αm