集成學習方法

這篇博文的記錄思路:1、說明集成學習的定義即什麼是集成學習。2、說明集成學習的分類。3、按照分類介紹。4、其他相關概念和經驗的羅列。

集成學習的定義

集成學習的一般結構:先產生一組“個體學習器”,再用某種策略將他們結合起來。(“個體學習器”舉例:由C4.5決策樹算法、BP神經網絡算法、LR、線性迴歸等生成的學習器。)

集成學習的分類

根據個體學習器的生成方式,目前的集成學習大致分爲兩大類:

分類1:個體學習存在強依賴關係,必須串行生成序列化方法。代表是Boosting,Boosting中最著名的代表是Adaboost算法,GBDT是AdaBoost的迴歸版本,XGBoost是進一步的改進?(Adaboost,GBDT和XGBoost參見另外三篇blog)

分類2:個體學習器間不存在強依賴關係,可同時生成的並行化算法。代表是Bagging 和 “隨機森林(Random Forest)”

分類介紹1.1——Boosting之代表Adaboost

詳見另一篇blog

分類介紹1.2——GBDT

詳見另一篇blog

分類介紹1.3——XGBoost

詳見另一篇blog

分類介紹2.1——Bagging

對於一個包含m個樣本的數據集D,直接基於自助採樣法(bootstrap sampling):先隨機取出一個樣本放入採樣集中,再把該數據放回初始數據集,使得下次採樣時該樣本仍有可能被選中,這樣,經過m次採樣操作,我們得到含m個樣本的採樣集,初始訓練集中有的樣本在採樣集中多次出現,有的則從未出現(初始訓練集中約有63.2%的樣本出現在採樣集中,詳細見《西瓜書》第二章式2.1)。

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

分類介紹2.2——隨機森林(Random Forest,簡稱RF)

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

(寫完這段話,想起了最早聽到隨機森林這句話是在2011年,當時覺得好深奧呀,估計我根本不能弄懂,就沒有去學習瞭解。現在,回過頭來想想,是多麼可笑,我完全是被自己思維的牆堵在了外邊。這個和跳蚤跳玻璃杯的故事何其相似!)

總結:

隨機森林被譽爲“代表集成學習技術水平的方法”

Bagging的多樣性僅來自:樣本擾動

隨機森林的多樣性來自:樣本擾動,屬性擾動

隨機森林的效率常優於Bagging:因爲在個體決策樹的構建過程中,Bagging使用的是“確定型”的決策樹,在選擇劃分屬性是要對節點的所有屬性進行考察,而隨機森林使用的“隨機型”決策樹只要考察一個屬性子集。

 

其他1——個體學習器裏有兩個概念:

同質(homogeneous):只包含同種類型的個體學習器。例如:“決策樹集成”:個體學習器全是決策樹,“神經網絡集成”:個體學習器全是神經網絡。有“基學習器”和“基學習算法”區別。

異質(heterogeneous):個體學習器由不同的學習算法生成。無“基學習算法”的概念,因爲這組個體學習器由不同的算法生成。

集成學習器通過將多個學習器進行結合,常可獲得比單一學習器顯著優越的泛化性能(對“弱學習器”尤爲明顯)

其他2——要獲得好的集成效果需滿足2個條件:

1、個體學習器要有一定的“準確性”,即學習器不能太壞(準確率要大於50%)

2、要有多樣性(diversity),即學習器間具有差異性。

總結四個字:好而不同

假設:基分類器的錯誤率相互獨立。由Hoeffding不等式可知,集成的錯誤率隨着分類器數目T的增大,集成的錯誤率將指數級下降,最終趨於零。但,在現實任務中,個體學習器是爲解決同一個問題訓練出來的,他們顯然不可能相互獨立。另:“準確性”與“多樣性”在一組個體學習器中本身就是衝突的,如何產生好而不同的個體學習器,恰是集成學習的核心。

其他3——結合策略

1、簡單平均、加權平均:加權平均法可認爲是集成學習研究的基本出發點,對給定的基學習器,不同的集成學習方法可視爲通過不同的方式來確定加權平均法中的基學習器權重。試驗和應用均顯示出,加權平均未必一定優於簡單平均法,一般而言,在個體學習器性能相差較大時宜使用加權平均法,而在個體學習器性能相近時宜使用簡單平均法。

2、投票法:投票法分爲,絕對多數投票法、相對多數投票法、加權投票法。(類標記:使用類標記投票亦稱“硬投票”。類概率:使用概率投票亦稱“軟投票”)

3、學習法:學習法的代表是stacking?

其他4——多樣性

多樣性度量:參見《西瓜書》

多樣性增強的方法:

1、數據樣本擾動:訓練樣本稍加變化就會導致學習器有顯著變動,數據擾動對這樣“不穩定基學習器”很有效。“不穩定基學習器”:決策樹、神經網絡。有些對數據樣本的擾動不敏感,例如:線性學習器、支持向量機、樸素貝葉斯、k近鄰學習器。稱爲“穩定學習器”,對此類基學習器進行集成往往需要使用輸入屬性擾動等其他機制。

2、輸入屬性擾動:適用於大量冗餘屬性的數據,若數據只包含少量屬性,或是冗餘屬性很少,則不宜使用輸入屬性擾動法。

3、輸出標識擾動:“不明瞭”

4、算法參數擾動:隨機設置不同的參數

其他5——經驗

需要指出的是:使用單一學習器時通常需使用交叉驗證等方法來確定參數值,這事實上已使用了不同參數訓練出多個學習器,只不過最終只選擇其中一個學習器進行使用,而集成學習則相當於把這些學習器都利用起來;由此可以看出,集成學習技術的實際計算開銷並不比使用單一學習器大很多。

參考:

1、周志華老師的《機器學習》

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