1. 程式人生 > >十大經典預測演算法(八)---adboost

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