2018.9.3

一 集成學習—boosting和bagging異同

集成學習

集成學習通過構建並結合多個學習器來完成學習任務.只包含同種類型的個體學習器,這樣的集成是“同質”的;包含不同類型的個體學習器,這樣的集成是“異質”的.集成學習通過將多個學習器進行結合,常可獲得比單一學習器顯著優越的泛化性能.

根據個體學習器的生成方式,目前的集成學習方法大致可分爲兩大類,即個體學習器間存在強依賴關係、必須串行生成的序列化方法,以及個體學習器間不存在強依賴關係、可同時生成的並行化方法;前者的代表是Boosting,後者的代表是Bagging和“隨機森林”.

bagging與boosting的概念及區別

首先介紹Bootstraping,即自助法:它是一種有放回的抽樣方法(可能抽到重複的樣本).

1、Bagging (bootstrap aggregating)

Bagging即套袋法,其算法過程如下:

A)從原始樣本集中抽取訓練集.每輪從原始樣本集中使用Bootstraping的方法抽取n個訓練樣本(在訓練集中,有些樣本可能被多次抽取到,而有些樣本可能一次都沒有被抽中).共進行k輪抽取,得到k個訓練集.(k個訓練集相互獨立)

B)每次使用一個訓練集得到一個模型,k個訓練集共得到k個模型.(注:根據具體問題採用不同的分類或迴歸方法,如決策樹、神經網絡等)

C)對分類問題:將上步得到的k個模型採用投票的方式得到分類結果;對迴歸問題,計算上述模型的均值作爲最後的結果.

2、Boosting

Boosting是一族可將弱學習器提升爲強學習器的算法.

關於Boosting的兩個核心問題:

1)在每一輪如何改變訓練數據的權值或概率分佈?

通過提高那些在前一輪被弱分類器分錯樣例的權值,減小前一輪分對樣本的權值,而誤分的樣本在後續受到更多的關注.

2)通過什麼方式來組合弱分類器?

通過加法模型將弱分類器進行線性組合,比如AdaBoost通過加權多數表決的方式,即增大錯誤率小的分類器的權值,同時減小錯誤率較大的分類器的權值.

而提升樹通過擬合殘差的方式逐步減小殘差,將每一步生成的模型疊加得到最終模型.

3、Bagging,Boosting二者之間的區別

Bagging和Boosting的區別:

1)樣本選擇上:

Bagging:訓練集是在原始集中有放回選取的,從原始集中選出的各輪訓練集之間是獨立的.

Boosting:每一輪的訓練集不變,只是訓練集中每個樣例在分類器中的權重發生變化.而權值是根據上一輪的分類結果進行調整.

2)樣例權重:

Bagging:使用均勻取樣,每個樣例的權重相等

Boosting:根據錯誤率不斷調整樣例的權值,錯誤率越大則權重越大.

3)預測函數:

Bagging:所有預測函數的權重相等.

Boosting:每個弱分類器都有相應的權重,對於分類誤差小的分類器會有更大的權重.

4)並行計算:

Bagging:各個預測函數可以並行生成

Boosting:各個預測函數只能順序生成,因爲後一個模型參數需要前一輪模型的結果.

4、隨機森林

隨機森林是Bagging的一個擴展變體,除了樣本集是有放回的採樣外,屬性集合也引入了隨機屬性選擇.具體來說,傳統決策樹在選擇劃分屬性時是在當前結點的屬性集合中選擇一個最優屬性;而在RF中,對基決策樹的每個結點,先從該結點的屬性集合中隨機選擇一個包含k個屬性的子集,然後再從這個子集中選擇一個最優屬性用於劃分.

隨機森林簡單、容易實現、計算開銷小.效果能使得最終集成的泛化性能可通過個體學習器之間差異度的增加而進一步提升.

5、多樣性增強

l 數據樣本擾動

數據樣本擾動通常是基於採樣法,對於決策樹、神經網絡等“不穩定基學習器”很有效,對於線性學習器、支持向量機、樸素貝葉斯、k近鄰學習器等穩定基學習器不敏感;

l 輸入屬性擾動

屬性子空間提供了觀察數據的不同視角,對包含大量冗餘屬性的數據,在子空間中訓練個體學習器不僅能產生多樣性大的個體,還會因屬性數的減少而大幅節省時間開銷;

l 輸出表示擾動

基本思路是對輸出表示進行操縱以增強多樣性.可對訓練樣本的類標記稍作變動;也可對輸出表示進行轉化;還可將原任務拆解爲多個可同時求解的子任務;

l 算法參數擾動

基學習算法一般都有參數需進行設置,例如神經網絡的隱層神經元數、初始連接權值等,通過隨機設置不同的參數,往往可產生差別較大的個體學習器.

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