- 相關推薦
集成學習方法
集成學習可以說是現在非常火爆的機器學習方法了。它本身不是一個單獨的機器學習算法,而是通過構建并結合多個機器學習器來完成學習任務。接下來小編搜集了集成學習方法,僅供大家參考。
集成學習概述
從下圖,我們可以對集成學習的思想做一個概括。對于訓練集數據,我們通過訓練若干個個體學習器,通過一定的結合策略,就可以最終形成一個強學習器,以達到博采眾長的目的。
也就是說,集成學習有兩個主要的問題需要解決,第一是如何得到若干個個體學習器,第二是如何選擇一種結合策略,將這些個體學習器集合成一個強學習器。
集成學習之個體學習器
上一節我們講到,集成學習的第一個問題就是如何得到若干個個體學習器。這里我們有兩種選擇。
第一種就是所有的個體學習器都是一個種類的,或者說是同質的。比如都是決策樹個體學習器,或者都是神經網絡個體學習器。第二種是所有的個體學習器不全是一個種類的,或者說是異質的。比如我們有一個分類問題,對訓練集采用支持向量機個體學習器,邏輯回歸個體學習器和樸素貝葉斯個體學習器來學習,再通過某種結合策略來確定最終的分類強學習器。
目前來說,同質個體學習器的應用是最廣泛的,一般我們常說的集成學習的方法都是指的同質個體學習器。而同質個體學習器使用最多的模型是CART決策樹和神經網絡。同質個體學習器按照個體學習器之間是否存在依賴關系可以分為兩類,第一個是個體學習器之間存在強依賴關系,一系列個體學習器基本都需要串行生成,代表算法是boosting系列算法,第二個是個體學習器之間不存在強依賴關系,一系列個體學習器可以并行生成,代表算法是bagging和隨機森林(RandomForest)系列算法。下面就分別對這兩類算法做一個概括總結。
集成學習之boosting
boosting的算法原理我們可以用一張圖做一個概括如下:
從圖中可以看出,Boosting算法的工作機制是首先從訓練集用初始權重訓練出一個弱學習器1,根據弱學習的學習誤差率表現來更新訓練樣本的權重,使得之前弱學習器1學習誤差率高的訓練樣本點的權重變高,使得這些誤差率高的點在后面的弱學習器2中得到更多的重視。然后基于調整權重后的訓練集來訓練弱學習器2.,如此重復進行,直到弱學習器數達到事先指定的數目T,最終將這T個弱學習器通過集合策略進行整合,得到最終的強學習器。
Boosting系列算法里最著名算法主要有AdaBoost算法和提升樹(boostingtree)系列算法。提升樹系列算法里面應用最廣泛的是梯度提升樹(GradientBoostingTree)。AdaBoost和提升樹算法的原理在后面的文章中會專門來講。
集成學習之bagging
Bagging的算法原理和boosting不同,它的弱學習器之間沒有依賴關系,可以并行生成,我們可以用一張圖做一個概括如下:
從上圖可以看出,bagging的個體弱學習器的訓練集是通過隨機采樣得到的。通過T次的隨機采樣,我們就可以得到T個采樣集,對于這T個采樣集,我們可以分別獨立的訓練出T個弱學習器,再對這T個弱學習器通過集合策略來得到最終的強學習器。
對于這里的隨機采樣有必要做進一步的介紹,這里一般采用的是自助采樣法(Bootstapsampling),即對于m個樣本的原始訓練集,我們每次先隨機采集一個樣本放入采樣集,接著把該樣本放回,也就是說下次采樣時該樣本仍有可能被采集到,這樣采集m次,最終可以得到m個樣本的采樣集,由于是隨機采樣,這樣每次的采樣集是和原始訓練集不同的,和其他采樣集也是不同的,這樣得到多個不同的弱學習器。
隨機森林是bagging的一個特化進階版,所謂的特化是因為隨機森林的弱學習器都是決策樹。所謂的進階是隨機森林在bagging的樣本隨機采樣基礎上,又加上了特征的隨機選擇,其基本思想沒有脫離bagging的范疇。bagging和隨機森林算法的原理在后面的文章中會專門來講。
什么是集成方法
集成方法是先構建一組分類器,然后用各個分類器帶權重的投票來預測新數據的算法。最初的集成方法是貝葉斯平均,但最新的算法包括誤差糾正輸出編碼和提升算法。
那么集成模型的原理是什么,以及它為什么比獨立模型的效果好呢?
它們消除了偏置的影響:比如把民主黨的問卷和共和黨的問卷混合,從中得到的將是一個不倫不類的偏中立的信息。
它們能減小預測的方差:多個模型聚合后的預測結果比單一模型的預測結果更穩定。在金融界,這被稱為是多樣化——多個股票的混合產品波動總是遠小于單個股票的波動。這也解釋了為何增加訓練數據,模型的效果會變得更好。
它們不容易產生過擬合:如果單個模型不會產生過擬合,那么將每個模型的預測結果簡單地組合(取均值、加權平均、邏輯回歸),沒有理由產生過擬合。
集成學習(ensemblelearning)更多的是一種組合策略,將多個機器學習模型結合起來,可以稱為元算法(meta—algorithm)。
面對一個機器學習問題,通常有兩種策略,一種是研發人員嘗試各種模型,選擇其中表現最好的模型做重點調參優化。這種策略類似于奧運會比賽,通過強強競爭來選拔最優的運動員,并逐步提高成績。另一種重要的策略是集各家之長,如同賢明的君主廣泛的聽取眾多謀臣的建議,然后綜合考慮,得到最終決策。后一種策略的核心,是將多個分類器的結果集成為一個統一的決策。使用這類策略的機器學習方法統稱為集成學習。其中的每個單獨的分類器稱為基分類器。
集成學習可以大致分為兩類:
Boosting:這類方法訓練基分類器時采用串行的方法,各個基分類器之間有依賴。它的基本思路是將基分類器層層疊加,每一層在訓練的時候,對前一層基分類器分錯的樣本,給予更高的權重。測試時,根據各層分類器的結果的加權得到最終結果。
Bagging:這類方法基分類器之間無強依賴,可以并行。其中很著名的算法之一是基于決策樹基分類器的隨機森林(RandomForest)。為了讓基分類器之間互相獨立,將訓練集分為若干子集(當訓練樣本數量較少時,子集之間可能有交疊)。
基分類器有時又稱為弱分類器,因為基分類器的錯誤率要大于集成后的分類器。基分類器的錯誤,是偏差(Bias)和方差(Variance)兩種錯誤之和。偏差主要是由于分類器的表達能力有限導致的系統性錯誤,表現在訓練誤差不能收斂到一個比較小的值。方差則是由于分類器對于樣本分布過于敏感,導致在訓練樣本數較少時,產生過擬合。
Boosting方法通過逐步聚焦于基分類器分錯的樣本,減小集成分類器的偏差。Bagging方法則是采取分而治之的策略,通過對訓練樣本多次采樣,并分別訓練出多個不同模型,然后做綜合,來減小集成分類器的方差。假設每個基分類器出錯的概率都是相互獨立的,在某個測試樣本上,用簡單多數的投票方法來集成結果,超過半數基分類器都出錯的概率會小于每個單獨的基分類器的出錯概率。一個Bagging的簡單示例如下圖:
Boosting
Boosting是一族可將弱學習器提升為強學習器的算法。這族算法的工作機制類似:先從初始訓練集訓練出一個基學習器,再根據基學習器的表現對訓練樣本分布進行調整,使得先前基學習器做錯的訓練樣本在后續受到更多關注,然后基于調整后的樣本分布來訓練下一個基學習器;如此重復進行,直至基學習器數目達到事先指定的值T,最終將這T個基學習器進行加權結合。
Boosting算法要求基學習器能對特定的數據分布進行學習,這可通過"重賦權法"(re—weighting)實施,即在訓練過程的每一輪中,根據樣本分布為每個訓練樣本重新賦予一個權重。對無法接受帶權樣本的基學習算法,則可通過"重采樣法"(re—sampling)來處理,即在每一輪學習中,根據樣本分布對訓練集重新進行采樣,再用重采樣而得的樣本集對基學習器進行訓練。
Bagging
Bagging[Breiman,1996a]是并行式集成學習方法最著名的代表。從名字即可看出,它直接基于自助采樣法(bootstrapsampling)。給定包含m個樣本的數據集,我們先隨機取出一個樣本放入采樣集中,再把該樣本放回初始數據集,使得下次采樣時該樣本仍有可能被選中,這樣,經過m次隨機采樣操作,我們得到含m個樣本的采樣集,初始訓練集中有的樣本在采樣集里多次出現,有的則從未出現。初始訓練集中約有63.2%的樣本出現在來樣集中。
與標準AdaBoost只適用于二分類任務不間,Bagging能不經修改地用于多分類、回歸等任務。
隨機森林
隨機森林(RandomForest,簡稱RF)是Bagging的一個擴展變體。RF在以決策樹為基學習器構建Bagging集成的基礎上,進一步在決策樹的訓練過程中引入了隨機屬性選擇。具體來說,傳統決策樹在選擇劃分屬性時是在當前結點的屬性集合(假定有d個屬性)中選擇一個最優屬性;而在RF中,對基決策樹的每個結點,先從該結點的屬性集合中隨機選擇一個包含k個屬性的子集,然后再從這個子集中選擇一個最優屬性用于劃分。
隨機森林簡單、容易實現、計算開銷小,令人驚奇的是,它在很多現實任務中展現出強大的性能,被譽為"代表集成學習技術水平的方法"可以看出,隨機森林對Bagging只做了小改動,但與Bagging中基學習器的"多樣性"僅通過樣本擾動(通過對初始訓練集采樣)而來不同,隨機森林中基學習器的多樣性不僅來自樣本擾動,還來自屬性擾動,這就使得最終集成的泛化性能可通過個體學習器之間差異度的增加而進一步提升。
隨機森林的訓練效率常優于Bagging,因為在個體決策樹的構建過程中,Bagging使用的是"確定型"決策樹?在選擇劃分屬性時要對結點的所有屬性進行考察,而隨機森林使用的"隨機型"決策樹則只需考察—個屬性子集。
集成方法的結合策略
平均法
平均法又分為簡單平均法和加權平均法。
簡單平均法就是求均值。
加權平均法的權重一般是從訓練數據中學習而得,現實任務中的訓練樣本通常不充分或存在噪聲,這將使得學出的權重不完全可靠。尤其是對規模比較大的集成來說,要學習的權重比較多,較容易導致過擬合。因此,實驗和應用均顯示出,加權平均法未必一起優于簡單平均法。一般而言,在個體學習器性能相差較大時宜使用加權平均法,而在個體學習器性能相近時宜使用簡單平均法。
投票法
投票法常用的有絕對多數投票法,相對多數投票法和加權投票法。
在不允許拒絕預測的任務中,絕對多數、相對多數投票法統稱為"多數投票法"
學習法
當訓練數據很多時,一種更為強大的結合策略是使用"學習法",即通過Stacking本身是一種著另一個學習器來進行結合。Stacking是學習法的典型代表。這里我們把個體學習器稱為初級學習器,用于結合的學習器稱為次級學習器或元學習器(meta—learner)。
在訓練階段,次級訓練集是利用初級學習器產生的,若直接用初級學習器的訓練集來產生次級訓練集,則過擬合風險會比較大;因此,一般是通過使用交叉驗證或留一法這樣的方式,用訓練初級學習器未使用的樣本來產生次級學習器的訓練樣本.
次級學習器的輸入屬性表示和次級學習算法對Stacking集成的泛化性能有很大影響.有研究表明,將初級學習器的輸出類概率作為次級學習器的輸入屬性,用多響應線性回歸(Multi-responseLinearRegression,簡稱MLR)作為次級學習算法效果較好,在MLR中使用不同的屬性集更佳。
貝葉斯模型平均(BayesModelAveraging,簡稱BMA)基于后驗概率來為不同模型賦予權重7可視為加權平均法的一種特殊實現.對Stacking和BMA進行了比較.理論上來說?若數據生成模型怡在當前考慮的模型中,且數據噪聲很少,則BMA不差于Stacking;然而,在現實應用中無法確保數據生成模型一定在當前考慮的模型中,甚至可能難以用當前考慮的模型來進行近似,因此,Stacking通常優于BMA,因為其魯棒性比BMA更好,而且BMA對模型近似誤差非常敏感。
【集成學習方法】相關文章:
知識集成提升企業集成創新能力初探08-03
基于知識集成提升企業集成創新能力初探10-17
ERP與SCM的集成10-16
春季釣魚集成篇12-12
炬力集成筆試11-14
集成吊頂裝修的技巧09-24
集成電路設計與集成系統專業職業規劃書范文01-17
集成吊頂廣告語01-09
集成spring與Web容器教程10-10