《統計學習方法》--提升方法

《統計學習方法》第八章–提升方法

提升方法的核心思想是在給定基礎模型的基礎上,通過不斷調整樣本的權重分佈訓練一系列的模型,盡最大可能的減少訓練誤差,最後將多個模型按照一定的權重係數進行組合得到最終的模型。通過採用多模型結合的方式,可以提升模型的穩定性,使模型更準確。

理論基礎

PAC理論(Probably Approximately Correct)

PAC理論(概率近似正確理論)主要是論證了在概率學習框架下,一個概念是強可學習的充分必要條件是這個概念是弱可學習的。即對於一個問題,如果能夠發現解決該問題的"弱學習算法",即該問題是弱可學習的,那麼該問題也必定有"強學習算法"存在,即該問題也必定是強可學習的。

弱可學習:弱可學習是指,對於一個概念,如果存在一個多項式的學習算法能夠學習他,學習的正確率僅比隨機猜測略好,那麼這個概念就是弱可學習的。

強可學習:強可學習是指,對於一個概念,如果存在一個多項式的學習算法能夠學習他,並且正確率很高,那麼這個概念就是強可學習的。

PAC理論實際上論證了提升方法的可靠性,即可以從一個弱分類器通過一定的算法將其變成一個強分類器,這也是集成類模型的通用指導思想。各類型集成模型的區別只是在於如何從基礎的弱分類模型不斷向強分類模型改進。

關於PAC理論的更多資料可以參看:

【ML學習筆記】8:PAC可能近似正確
30分鐘瞭解PAC學習理論——計算學習理論第一講

AdaBoost算法

AdaBoost算法通過不斷更新樣本的權重分佈,使得在上一個基礎模型中誤分類大的數據在下輪的模型訓練中佔據更大權重,由此得到一系列的基礎模型,再依據基礎模型的對應權重,將全部基礎模型組合起來得到最終的決策模型的一種算法。

輸入:訓練數據集T={(x1,y1),(x2,y2)...(xN,yN)},xiXRn,yY={1,1};T=\{(x_1,y_1),(x_2,y_2)...(x_N,y_N)\},其中x_i\in \mathcal{X} \subseteq R^n,y\in \mathcal{Y}=\{-1,1\};若學習算法

輸出:最終分類器G(x)G(x)

(1) 初始化訓練數據的權值分佈D1=(ω11,...,ω1i,...,ω1N),ω1i=1Ni=1,2,3,...,ND_1=(\omega_{11},...,\omega_{1i},...,\omega_{1N}),\omega_{1i}=\frac{1}{N},i=1,2,3,...,N 即在初始化數據集時先假定是均勻分佈,每個樣本的權重相同。

(2) 對於m=12...Mm=1,2,...M

  • (a)使用具有權值分佈DmD_m的訓練數據集訓練基礎模型Gm(x):X{1,+1}G_m(x):\mathcal{X} \rightarrow \{-1,+1\}
  • (b)計算Gm(x)G_m(x)在訓練數據集上的誤分類率,em=i=1NP(Gm(xi)yi)=i=1NωmiI(Gm(xi)yi)e_m=\sum_{i=1}^{N}{P(G_m(x_i)\not ={y_i})=\sum_{i=1}^{N}{\omega_{mi}I(G_m(x_i)\not ={y_i})}}這個誤分類率本質是對全部誤分類樣本權重的求和。
  • ©計算當前基礎模型Gm(x)G_m(x)的權重係數αm=12log1emem\alpha_m=\frac{1}{2}\log \frac{1-e_m}{e_m}
  • (d)更新訓練數據集的權值分佈Dm+1=(ω(m+1)1,(m+1)2,...,(m+1)N)D_{m+1}=(\omega_{(m+1)1,(m+1)2,...,(m+1)N}),ωm+1,i=ωmiZmexp(αmyiGm(xi)),Zm=i=1Nωmiexp(αmyiGm(xi)),i=1,2,...,N\omega_{m+1,i}=\frac{\omega_{mi}}{Z_m}\exp(-\alpha_my_iG_m(x_i)),Z_m=\sum_{i=1}^{N}\omega_{mi}\exp(\alpha_my_iG_m(x_i)) ,其中i=1,2,...,N在公式中ZmZ_m稱爲規範化因子(全部樣本),通過規範化,可以將數值縮放到010-1之間,使得DmD_m能稱爲概率分佈

(3) 組合基本模型,得到最終決策模型G(x)=sign(m=1MαmGm(x))G(x)=sign(\sum_{m=1}^{M}\alpha_m G_m(x))

具體應用

AdaBoost算法描述的是一大類的提升算法,應用到具體的實際中,依據選用的基礎模型不同,有不同的具體算法。

提升樹(Boosting Tree)

提升樹是以分類樹或者回歸樹爲基本分類器,以加法模型爲基礎模型,通過前向分步算法求解的提升方法的應用。針對分類問題採用二叉分類樹,針對迴歸問題採用二叉迴歸樹,通過不斷的求解經驗風險最小化(損失函數最小化)得到一系列的基礎模型,最後將不同模型進行線性組合得到將最終決策模型。

梯度提升樹(GBDT)

梯度提升樹是在提升樹的基礎上,將提升樹中每一步需要擬合的殘差用損失函數L(y,f(x))L(y,f(x))在當前模型fm(x)f_m(x)下的梯度的負值來代替,即用[L(y,f(xi))f(xi)]-[\frac{\partial L(y,f(x_i))}{\partial f(x_i)}]來估計提升樹中的殘差。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章