集成學習(ensemble learning)經過構建並結合多個學習器來完成學習任務。集成學習經過將多個學習器進行結合,常能夠得到比單一學習器顯著優越的泛化性能。這對「弱學習器」尤其明顯,所以集成學習的不少理論研究都是針對弱學習器進行的。html
要得到好的集成,個體學習器應該「好而不一樣」,即個體學習器要有必定的「準確性」,即學習器不能太壞,而且要有「多樣性」,即學習器之間有差別。算法
根據個體學習器的生成方式,目前的集成學習方法大體能夠分爲兩大類,即個體學習器間存在強依賴關係,必須串行生成的序列化方法,以及個體學習器間不存在強依賴關係,可同時生成的並行化方法,前者的表明是boosting,後者的表明是Bagging和隨機森林。網絡
Boosting是一族可將弱學習器提高爲強學習器的算法。這族算法的工做機制相似:先從初始訓練集訓練出一個基學習器,再根據基學習器的表現對訓練數據樣本分佈進行調整,似的先前基學習器作錯的訓練樣本在後續受到更多的關注,而後基於調整後的樣本分佈來訓練下一個基學習器;如此重複進行,直至基學習器數目達到事先指定的值T,最終將這T個基學習器進行加權結合。函數
Boosting算法最著名的表明是AdaBoost,其能夠經過「加性模型」(additive model)來推導獲得,即基學習器的線性組合爲:性能
來最小化指數損失函數(exponential loss function):學習
若H(x)能令指數損失函數最小化,則考慮用損失函數對H(x)求偏導:優化
這意味着sign(H(x))達到了貝葉斯最優錯誤率。換言之,若指數損失函數最小化,則分類錯誤率也將最小化;這說明指數損失函數是分類任務本來0/1損失函數的一致的替代損失函數。因爲這個替代函數有更好的數學性質,例如它是連續可微函數,所以咱們用它來替代0/1損失函數做爲優化目標。htm
在AdaBoost算法中,第一個基分類器是經過直接將基學習器用於初始數據分佈而得;此後迭代地生成下一個基分類器以及其對應的加權權重分。當基分類器基於當前的數據分佈獲得後,該基分類器的權重應使得其最小化指數損失函數:blog
AdaBoost算法在得到 Ht-1後樣本分佈將進行調整,使得下一輪的基學習器ht能糾正Ht-1的一些錯誤。理想狀況下能糾正所有錯誤,即最小化:get
因而可知,理想的ht將在分佈Dt下最小化分類偏差。所以,弱分類器將基於分佈Dt來訓練,且針對Dt的分類偏差應小於0.5.這在必定程度上相似「殘差逼近」的思想。考慮Dt和Dt+1的關係,有:
因而,咱們能夠從基於「加性模型」和優化」指數損失函數「的角度推導出AdaBoost算法:
Boosting算法要求基學習器能對特定數據分佈進行學習,這能夠經過」重賦權法「或者」重採樣法「來處理。
從誤差-方差分解的角度(http://www.cnblogs.com/bentuwuying/p/6654536.html)來看,Boosting主要關注下降誤差,所以Boosting能基於泛化性能至關弱的學習器構建出很強的集成。
欲獲得泛化性能強的集成,集成中的個體學習器應儘量相互獨立;雖然」獨立「在現實任務中沒法作到,但能夠設法使基學習器儘量具備較大的差別。給定一個訓練數據集,一種可能的作法就是對訓練樣本進行採樣,產生出若干個不一樣的子集,再從每一個子集中訓練出一個基學習器。因爲訓練數據的不一樣,咱們得到的基學習器可望具備較大的差別。然而,爲得到較好的集成,咱們同時還但願個體學習器不能太差。若是採樣的每一個子集都徹底不一樣,則每一個學習器只用到了一小部分訓練數據,甚至不足以進行有效學習,這顯然沒法保證產生出較好的基學習器。爲解決這個問題,咱們能夠考慮使用互相有交集的採樣子集。這就是Bagging的思想。
從誤差-方差分解的角度看,Bagging主要關注的是下降方差,所以它在不剪枝決策樹,神經網絡等易受樣本擾動的學習器上效果更爲明顯。
隨機森林(RF)是Bagging的一個擴展變體。RF在以決策樹爲基學習器構建Bagging集成的基礎上,進一步在決策樹的訓練過程當中引入隨機屬性選擇。在RF中,對基決策樹的每一個結點,先從該節點的屬性集合中隨機選擇一個包含k個屬性的子集,而後再從這個子集中選擇一個最優屬性用於劃分。通常狀況下,推薦k=log2d,d是全部的屬性集合。
隨機森林中的基學習器的多樣性不只來自於樣本擾動,還來自於屬性擾動,這就使得最終集成的泛化性能可經過個體學習器之間差別度的增長而進一步提高。
學習器結合可能會從三方面帶來好處。
1. 從統計的方面來看,因爲學習任務的假設空間每每很大,可能有多個假設在訓練集上達到同等性能,此時若使用單學習器可能因誤選而致使泛化性能不佳,結合多個學習器能夠減少這個風險。
2. 從計算的方面來看,學習算法每每會陷入局部極小,有的局部極小點所對應的泛化性能可能很糟糕,而經過屢次運行以後進行結合,可下降陷入糟糕局部極小點的風險。
3. 從表示的方面來看,某些學習任務的真實假設可能不在當前學習算法所考慮的假設空間中,此時若使用單學習器確定無效,而經過結合多個學習器,因爲相應的假設空間有所擴大,有可能學得更好的近似。