集成學習算法原理總結

目錄

1 Boosting

2 Bagging和隨機森林

2.1 Bagging

2.2 隨機森林

3 結合策略 

3.1 平均法

3.2 投票法

3.3 學習法- Stacking


集成學習(ensemble learning)通過構建並結合多個學習器來完成學習任務。

                                                       

要獲得好的集成,個體學習器應“好而不同”,即個體學習器要有一定的“準確性”,並且要有“多樣性”,即學習器之間具有差異。

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

1 Boosting

Boosting是一族可將弱學習器提升爲強學習器的算法。其工作機制類似:先從初始訓練集訓練出一個基學習器,再根據基學習器的表現對訓練樣本分佈進行調整,使得先前基學習器預測錯誤的訓練樣本再後續受到更多關注,然後基於調整後的樣本分佈來訓練下一個基學習器;如此重複進行,甚至基學習器數目達到事先指定的值T,最終將這T個基學習器進行加權結合。

Boosting族算法最著名的代表是Adaboost,其原理詳見:提升方法算法原理總結

 

2 Bagging和隨機森林

2.1 Bagging

給定包含m個樣本的數據集,先隨機取出一個樣本放入採樣集,然後再把該樣本放回初始數據集,使得下次採樣時該樣本仍有可能被選中,這樣,經過m次隨機採樣操作,就得到了含有m個樣本的採樣集。初始訓練集中有的樣本再採樣集中出現多次,有的則從未出現。

這樣,就可以採樣出T個包含m個訓練樣本的採樣集,然後基於每個採樣集訓練出一個基學習器,再將這些基學習器進行結合。這就是Bagging的基本流程。

在對預測輸出進行結合時,Bagging通常對分類任務使用簡單投票法,對迴歸任務使用簡單平均法。

訓練一個Bagging集成學習器的複雜度爲O(m),與訓練一個基學習器的複雜度同階。

自助採樣過程還給Bagging帶來另一個優點:由於每個基學習器只使用了初始訓練集中約63.2%的樣本,剩下約36.8%的樣本可用作驗證集來對泛化性能進行“包外估計”。

2.2 隨機森林

隨機森林是Bagging的一個拓展變體。RF在以決策樹爲基學習器構建Bagging集成的基礎上,進一步在決策樹的訓練過程中引入了隨機屬性的選擇。具體來說,傳統決策樹在選擇劃分屬性時是在當前節點的屬性集合(假定有d個屬性)中選擇一個最優屬性;而在RF中,對基決策樹的每個結點,先從該結點的屬性集合中隨機選擇一個包含k個屬性的子集,然後再從這個子集中選擇一個最優屬性用於劃分。這裏的參數k控制了隨機性的引入程度:若令k=d,則基決策樹的構建和傳統決策樹相同;若令k=1,則是隨機選擇一個屬性用於劃分;一般情況下,推薦值k=log_{2} (d)

 

3 結合策略 

3.1 平均法

  • 簡單平均法

      

  • 加權平均法

       

加權平均法的權重一般是從訓練數據中學習得到,現實任務中的訓練樣本通常不充分或存在噪聲,使得學出的權重不完全可靠。

一般而言,在個體學習器性能相差較大時宜使用加權平均法,而在個體學習器性能相近時宜使用簡單平均法。

3.2 投票法

  • 絕對多數投票法

      

  • 相對多數投票法

      

  • 加權投票法

      

3.3 學習法- Stacking

Stacking先從初始數據集訓練出初級學習器,然後“生成”一個新數據集用於訓練次級學習器。

 

 

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