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