提升方法及AdaBoost



查看原文:http://www.wyblog.cn/2016/11/01/%e6%8f%90%e5%8d%87%e6%96%b9%e6%b3%95%e5%8f%8aadaboost/

提升方法


提升方法思路比較簡單,它意在通過改變訓練樣本之間相對的權重,從而學習出多個分類器,並將這些分類器進行線性組合,從而提高分類的性能。 從以上思路可以看出,提升方法將一個複雜的任務分配給多個專家進行判斷,並且對判斷的結果進行綜合,這樣做要比只讓一個專家來判斷要好,畢竟大家說好纔是真的好。

強可學習與弱可學習

  • 一個概念,如果存在一個多項式的學習算法能夠學習它,並且正確率很高,那麼就稱這個是強可學習的。
  • 一個概念,如果存在一個多項式的學習算法能夠學習它,但正確率僅比隨機猜略好,那麼就稱這個概念是弱可學習的。

而Boost,恰好就是將弱可學習方法提升爲強可學習方法的途徑,所以叫做提升方法。提升方法就是從弱可學習算法出發,反覆學習,得到一系列弱分類器,然後組合這些弱分類器,構成一個強分類器。 根據以上描述,可以看到有兩個問題需要考慮:

  1. 在每一輪學習中,訓練數據的權重值如何確定?
  2. 組合強分類器時,線性組合的係數如何確定?

AdaBoost


對於第一個問題,AdaBoost算法是提高那些被前一輪弱分類器錯誤分類樣本的權值,而降低那些被正確分類樣本的權值。這樣做的結果就是,使得被錯誤分類的樣本能得到更多關注。 對於第二個問題,AdaBoost採取加大分類誤差率小的弱分類器的權值,使其起較大作用,並且減少分類誤差率大的權值。可見,這裏的決定因素就是這個分類誤差率的大小。

算法

輸入:訓練數據集 圖片 ,其中 圖片;弱學習算法。 輸出:最終分類器G(x)。

  1. 初始化訓練數據的權值分佈: 圖片
  2. 對於m=1,2,3...M a). 使用具有權值分佈Dm的訓練數據集學習,得到基本分類器Gm(x)→{-1,+1} b). 計算Gm(x)在訓練數據集上的誤差率: 圖片 c). 計算Gm(x)的係數: 圖片 d). 更新訓練數據集的權值分佈: 圖片 其中,Zm是規範化因子, 圖片
  3. 構建基本分類器的線性組合並得到最終分類器: 圖片

從以上算法可以看到: 最開始步驟1,我們假設了樣本具有均勻的權重分佈,它將產生一個基本分類器G1(x)。 步驟2是一個m從1到M的循環過程,每一次循環都可以產生一個弱分類器。

  1. 對於b).可以看到,分類誤差率實際上就是被誤分類點的權值之和。
  2. 對於c).是在計算當前弱分類器在線性組合中的係數,由其表達式可知,當e<=0.5時,α>=0,並且隨着e的減小而增大,這正印證了我們需要使誤差率小的弱分類器的權值更大這個事實。
  3. 對於d).可以看到,每一個樣本的權值ω,都與它原來的標籤yi以及預測的標籤Gm(xi)有關,當預測正確即它們同號時,exp指數是一個負值,這樣就會減小原來樣本點的權重;當預測不正確即它們異號時,exp指數是一個正值,它會增加當前樣本點的權重。這正印證了我們需要使被誤分類樣本的權值更大這個事實。

步驟3中要注意一點的是,所有αi之和並不是等於1的,其僅表示對應分類器的重要性。 f(x)的符號決定了實例x的類,它絕對值的大小,表示分類的確信度。

提升樹


提升樹是以分類樹或者回歸樹爲基本分類器的提升方法,它被廣泛的應用,例如有名的梯度提升樹GBDT,以及另一篇博文分析的XGBOOST。 提升樹也是提升方法的一種,所以它的模型還是加法模型,只是選擇了決策樹作爲基函數。則提升樹的模型爲$latex f_{M}(X)=\sum_{m=1}^{M} T(x:\theta_{m})$。 對於不同的應用情況,模型可以採用不同的損失函數。對於迴歸問題,可以採用平方誤差損失,對於分類問題,可以採用指數損失函數,這裏的損失函數一般都只包含了經驗損失,並未關注結構風險,這是一個缺點。

梯度提升樹算法

梯度提升樹利用損失函數的負梯度在當前模型的值,即$latex -[\frac{\partial L_{(y,f(x_{i}))}}{\partial f(x_{i})}]_ {f(x)=f_{m-1}(x)}$,作爲迴歸問題提升樹算法中的殘差的近似值而擬合迴歸樹。 關於提升樹,可參考XGBOOST博文。

http://www.wyblog.cn/2016/11/25/xgboost%E6%96%87%E7%8C%AE%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/



查看原文:http://www.wyblog.cn/2016/11/01/%e6%8f%90%e5%8d%87%e6%96%b9%e6%b3%95%e5%8f%8aadaboost/
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章