十大經典預測演算法(八)---adboost
一、基本原理
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的多個子模型通過加權求和的方式融合,並不是簡單的求平均,子模型的權重取決於子模型的誤差率大小,誤差率越小,權值越大