集成方法(ensemble method) Boosting Adaboost

使用集成方法時可有多種方式:

  • 不同算法的集成;
  • 同一算法在不同設置下的集成;
  • 數據集不同部分分配給不同分類器之後的集成;

下面主要介紹同一類型分類器的集成。
1. bagging 基於數據隨機重抽樣的分類器構建方法
思想:
自舉匯聚法(bootstrap aggregating), 採用bootstap從原始數據集重抽樣,且樣本大小與原來一樣大,重複S次。在S個數據集建好之後,將某個學習算法分別作用於每個數據集就得到S個分類器。對新數據進行分類時,就可應用這S個分類器進行分類,且選擇分類器投票結果中最多的類別作爲最後的分類結果。
隨機森林就屬於bagging。2001年Breiman把分類樹組合成隨機森林(Breiman 2001a),即在變量(列)的使用和數據(行)的使用上進行隨機化,生成很多分類樹,再彙總分類樹的結果。隨機森林在運算量沒有顯著提高的前提下提高了預測精度。關於隨機森林可參見http://blog.csdn.net/zrjdds/article/details/50133843
2.boosting
boosting與bagging相似,它們所使用的的多個分類器的類型都是一致的。boosting是通過集中關注被已有分類器錯分的那些數據來獲得新的分類器。boosting的分類結果是基於所有分類器的加權求和,bagging中的分類器權重是相等的,而boosting中的分類器權重並不相等,每個權重代表的是其對應分類器在上一輪迭代中的成功度。
boosting中最流行的是AdaBoost。AdaBoost是adaptive boost的縮寫。其運行過程如下
訓練數據中的每個樣本,並賦予其一個權重,記爲向量D。D初值往往將每個元素設爲1/n,n是訓練樣本個數。首先在訓練集上訓練出一個弱分類器並計算該分類器的錯誤率,根據錯誤率重新調整每個樣本的權重,降低上次分對的樣本的權重,提高分錯樣本的權重。最後將所有分類器的分類結果採用加權平均彙總起來,每個分類器的權重是α ,而α 是基於該分類器的錯誤率計算的。樣本權重和分類器權重計算如下:
錯誤率的定義:

ϵ=

α 的計算公式如下:
α=12ln1ϵϵ

計算出α 之後,可對權重向量D進行更新,以使得那些正確分類的樣本的權重降低而錯分樣本的權重升高。D的計算方法如下。
如果某個樣本被正確分類,那麼該樣本的權重更改爲:
Dt+1i=D(t)ieαj=1i1D(t+1)j+j=inD(t)j

而如果某個樣本被錯分,那麼該樣本的權重更改爲:
Dt+1i=D(t)ieαj=1i1D(t+1)j+j=inD(t)j

在計算出D之後,AdaBoost開始進入下一輪迭代。AdaBoost算法會不斷地重複訓練和調整權重的過程,直到訓練錯誤率爲0或者弱分類器的數目達到用戶的指定值爲止。
發佈了40 篇原創文章 · 獲贊 30 · 訪問量 21萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章