集成學習和Boosting原理總結

接自https://blog.csdn.net/Y_hero/article/details/88376573 bagging與隨機森林。

1.集成學習

 集成學習(ensemble learing)通過構建並結合多個學習器來完成學習任務,有時也被稱爲多酚類器系統(multi-classifier system),基於委員會的學習(sommittee-baseslearing)等。

 以下集成學習介紹來自西瓜書;
集成學習
個人感覺頗有幾分卷積神經網絡的味道,每個卷積核提取部分信息,逐層向上傳遞,但是神經網絡有着很多超參數。
從上述的介紹我們可以看出,如何產生“好而不同”的個體學習器,是集成學習研究的核心。

根據個體學習器的生成方式,集成學習可分爲兩大類
1.個體學習器間存在強依賴關係,必須穿行生成的序列化方法(Boosting)
2.個體學習器間不存在強依賴關係,可同時生成的並行化方法(Bagging和隨機森林)

也可分爲如下三類:
1.用於減少方差的bagging
2.用於減少偏差的boosting
3.用於提升預測結果的stacking

集成學習有兩個主要的問題需要解決:

第一是如何得到若干個個體學習器,
第二是如何選擇一種結合策略,將這些個體學習器集合成一個強學習器。

目前來說,同質個體學習器的應用是最廣泛的,一般我們常說的集成學習的方法都是指的同質個體學習器。而同質個體學習器使用最多的模型是CART決策樹和神經網絡。

2.集成學習之Boosting

boosting圖解
  從圖中可以看出,Boosting算法的工作機制是首先從訓練集用初始權重訓練出一個弱學習器1,根據弱學習的學習誤差率表現來更新訓練樣本的權重,使得之前弱學習器1學習誤差率高的訓練樣本點的權重變高,使得這些誤差率高的點在後面的弱學習器2中得到更多的重視。然後基於調整權重後的訓練集來訓練弱學習器2.,如此重複進行,直到弱學習器數達到事先指定的數目T,最終將這T個弱學習器通過集合策略進行整合,得到最終的強學習器。

**boosting和bagging的區別在於;**是對加權後的數據利用弱分類器依次進行訓練。簡單來講bagging是並行的,而boosting是串行的,初始化時根據輸入訓練集的各樣本比例作爲各樣本的初始權值,然後訓練一個基學習器,然後根據基學習器的效果,提升那些被誤判的樣本類的權值(全部樣本都預測正確,則正確率爲1),然後將調整後的樣本集進行訓練,之後的每一個基學習器都要在上一個學習器完成後並調整樣本權值後纔可以進行訓練,因此是串行的,一個接一個訓練。

boosting是一族可將弱學習器提升爲強學習器的算法,這族算法的工作機制類似:

先從初始訓練集訓練出一個基學習器;
再根據基學習器的表現對訓練樣本分佈進行調整,使得先前基學習器做錯的訓練樣本在後續受到更多關注;
基於調整後的樣本分佈來訓練下一個基學習器;
重複進行上述步驟,直至基學習器數目達到事先指定的值T,最終將這T個基學習器進行加權結合。

 Boosting系列算法裏最著名算法主要有AdaBoost算法和提升樹(boosting tree)系列算法。提升樹系列算法裏面應用最廣泛的是梯度提升樹(Gradient Boosting Tree)。AdaBoost和提升樹算法的原理在後面的文章中會專門來講。

3.結合策略

經過Bagging和Boosting兩種不同方式集成後,緊接對各個學習器生成的結果進行處理,得出一個結果。而怎麼對各個
學習器的結果進行集成處理則是結合策略,總的來說3類:
3.1平均法
3.2投票法
3.3學習法

詳見https://blog.csdn.net/Y_hero/article/details/88376573。

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