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