一、基本原理
AdaBoost是adaptive boosing的縮寫,它是一種基於Boosting框架的算法。下圖為該算法的迭代過程。
AdaBoost從原始數據集D1開始學習第個模型,經過三輪的迭代,得到三個弱分類器,每一輪的迭代都要評估下模型的分類誤差,在一輪時把分錯的樣本進行加權,最后把三個分類器按照一定的權重組合起來得到一個強分類器。
從上圖可以看出,每一個弱分類器的模型都很簡單,示例圖中的它們只是一個一層的決策樹,每一個弱分類器在融合的時候都有一個權重,三個弱分類器融合后,變成一個能力更強的復雜模型。
由上圖可知,AdaBoost是由多個弱分類器組成,每次由一個弱分類器訓練數據集,然后把這個訓練器分錯的數據集權重加大,沒分錯的減小權重,再由下一個弱學習器訓練這個數據集,這樣一直迭代下去,最后融合成一個最強的學習器。
AdaBoost算法構建過程,
1、假設訓練集T = {(X1,Y1),(X2,Y2)……(Xn,Yn)}
2、初始化訓練數據權重分布,
D1 = (Wl1,Wl2……Wln),Wli = 1/n,i=1,2……n
3、使用具有權值分布的Dm的訓練集學習,得到基本分類器
4、計算Gm(x)在訓練集上的分類誤差
5、計算Gm(x)模型的權重系數am
6、權重訓練集的權值分布
7、這里Zm是規范化因子(規一化)
8、構建分類器的線性組合
9、得到最終分類器
AdaBoost算法推導
算法的直觀理解
AdaBoost小結
1、AdaBoost是一種Boosting的融合算法,它通過級聯的方式,把一系列的弱學習模型融合在一起變成一個強分類器。
2、AdaBoost既可以做分類,也可以做回歸
3、AdaBoost做分類模型的時候,默認的基學習類型是決策樹。
4、AdaBoost的多個子模型通過加權求和的方式融合,並不是簡單的求平均,子模型的權重取決於子模型的誤差率大小,誤差率越小,權值越大