集成學(xué)習(xí)

一、介紹

集成學(xué)習(xí)就是組合這里的多個弱監(jiān)督模型以期得到一個更好更全面的強監(jiān)督模型显熏,集成學(xué)習(xí)潛在的思想是即便某一個弱分類器得到了錯誤的預(yù)測,其他的弱分類器也可以將錯誤糾正回來。

集成方法是將幾種機器學(xué)習(xí)技術(shù)組合成一個預(yù)測模型的元算法坛善,以達到減小方差(bagging)、偏差(boosting)或改進預(yù)測(stacking)的效果邻眷。

一般經(jīng)驗中眠屎,如果把好壞不一的東西摻雜在一起,那么最終結(jié)果很可能是整體效果比最壞的東西要好一些肆饶,但又比最好的那個要壞一些改衩,那么這種情況下不如就讓最好的單獨去工作,而不要參與混合驯镊。但是集成學(xué)習(xí)還是對多個學(xué)習(xí)器進行了結(jié)合葫督,那它怎么保證整體的效果會比最好的那個單一學(xué)習(xí)器的效果更好呢。要獲得好的集成板惑,個體學(xué)習(xí)器應(yīng)“好而不同”橄镜,即個體學(xué)習(xí)器要有一定的準確性,即學(xué)習(xí)器不能太壞冯乘,并且要有“多樣性”(diversity)洽胶,即學(xué)習(xí)器間具有差異。

集成學(xué)習(xí)在各個規(guī)模的數(shù)據(jù)集上都有很好的策略往湿。

數(shù)據(jù)集大:劃分成多個小數(shù)據(jù)集妖异,學(xué)習(xí)多個模型進行組合

數(shù)據(jù)集型锵贰:利用Bootstrap方法進行抽樣,得到多個數(shù)據(jù)集他膳,分別訓(xùn)練多個模型再進行組合

集成方法可分為兩類(Boosting和Bagging):

根據(jù)個體學(xué)習(xí)器生成方式的不同响逢,目前集成學(xué)習(xí)方法大致可分為兩大類,即個體學(xué)習(xí)器間存在強依賴關(guān)系棕孙、必須串行生成的序列化方法舔亭,以及個體學(xué)習(xí)器間不存在強依賴關(guān)系、可同時生成的并行化方法蟀俊;前者的代表是Boosting钦铺,后者的代表是和Bagging和“隨機森林”(Random Forest)。

序列集成方法肢预,其中參與訓(xùn)練的基礎(chǔ)學(xué)習(xí)器按照順序生成(例如 AdaBoost)矛洞。序列方法的原理是利用基礎(chǔ)學(xué)習(xí)器之間的依賴關(guān)系。通過對之前訓(xùn)練中錯誤標記的樣本賦值較高的權(quán)重烫映,可以提高整體的預(yù)測效果沼本。

并行集成方法,其中參與訓(xùn)練的基礎(chǔ)學(xué)習(xí)器并行生成(例如 Random Forest)锭沟。并行方法的原理是利用基礎(chǔ)學(xué)習(xí)器之間的獨立性抽兆,通過平均可以顯著降低錯誤。

二族淮、集成方法的特點

1. 將多個分類方法聚集在一起辫红,以提高分類的準確率。

(這些算法可以是不同的算法祝辣,也可以是相同的算法贴妻。)

2. 集成學(xué)習(xí)法由訓(xùn)練數(shù)據(jù)構(gòu)建一組基分類器,然后通過對每個基分類器的預(yù)測進行投票來進行分類

3. 嚴格來說较幌,集成學(xué)習(xí)并不算是一種分類器揍瑟,而是一種分類器結(jié)合的方法。

4. 通常一個集成分類器的分類性能會好于單個分類器

5. 如果把單個分類器比作一個決策者的話乍炉,集成學(xué)習(xí)的方法就相當于多個決策者共同進行一項決策绢片。

自然地,就產(chǎn)生兩個問題:

  1)怎么訓(xùn)練每個算法岛琼?

  2)怎么融合每個算法底循?

三、集成學(xué)習(xí)的幾種方法(Bagging槐瑞,Boosting以及Stacking)

1熙涤、Bagging(bootstrap aggregating,裝袋)

Bagging即套袋法,先說一下bootstrap祠挫,bootstrap也稱為自助法那槽,它是一種有放回的抽樣方法,目的為了得到統(tǒng)計量的分布以及置信區(qū)間等舔,其算法過程如下:

A)從原始樣本集中抽取訓(xùn)練集骚灸。每輪從原始樣本集中使用Bootstraping的方法抽取n個訓(xùn)練樣本(在訓(xùn)練集中,有些樣本可能被多次抽取到慌植,而有些樣本可能一次都沒有被抽中)甚牲。共進行k輪抽取,得到k個訓(xùn)練集蝶柿。(k個訓(xùn)練集之間是相互獨立的)

B)每次使用一個訓(xùn)練集得到一個模型丈钙,k個訓(xùn)練集共得到k個模型。(注:這里并沒有具體的分類算法或回歸方法交汤,我們可以根據(jù)具體問題采用不同的分類或回歸方法雏赦,如決策樹、感知器等)

C)對分類問題:將上步得到的k個模型采用投票的方式得到分類結(jié)果蜻展;對回歸問題喉誊,計算上述模型的均值作為最后的結(jié)果。(所有模型的重要性相同)

要想獲得泛化性能強的集成纵顾,集成中的個體學(xué)習(xí)器應(yīng)盡可能相互獨立。而“獨立”在現(xiàn)實任務(wù)中比較難以做到栋盹,不過我們可以設(shè)法使基學(xué)習(xí)器盡可能具有較大的差異施逾。給定一個訓(xùn)練集,一種可能的做法是對訓(xùn)練樣本進行采樣例获,產(chǎn)生出若干個不同的子集汉额,再從每個數(shù)據(jù)子集中訓(xùn)練出一個基學(xué)習(xí)器,這樣榨汤,由于訓(xùn)練數(shù)據(jù)不同蠕搜,我們獲得的基學(xué)習(xí)器可望具有比較大的差異。然而收壕,為獲得好的集成妓灌,我們同時希望個體學(xué)習(xí)器不能太差。如果采樣出的每個子集都完全不同蜜宪,則每個基學(xué)習(xí)器只用到了一小部分訓(xùn)練數(shù)據(jù)虫埂,那甚至不能進行有效的學(xué)習(xí),更不談確保產(chǎn)生比較好的基學(xué)習(xí)器了圃验。于是掉伏,為了解決這個問題,我們使用相互有交疊的采樣子集

Bagging基于前面提到過的自助采樣法(bootstrap sampling)斧散。給定包含m個樣本的數(shù)據(jù)集供常,我們先隨機取出一個樣本放入采樣集中,再把該樣本放回初始數(shù)據(jù)集鸡捐,使得下次采樣時該樣本仍有可能被選中话侧,這樣,經(jīng)過m此隨機采樣操作闯参,我們得到含m個樣本的采樣集瞻鹏,初始訓(xùn)練集中有的樣本在采樣集里多次出現(xiàn),有的則從未出現(xiàn)鹿寨。

于是新博,我們可以采樣出T個含m個訓(xùn)練樣本的采樣集,然后基于每個采樣集訓(xùn)練出一個基學(xué)習(xí)器脚草,再集成赫悄,這就是Bagging的基本流程。在對預(yù)測輸出進行結(jié)合時馏慨,Bagging通常對分類任務(wù)采用簡單投票法埂淮,對回歸任務(wù)使用簡單平均法。若分類預(yù)測時出現(xiàn)兩個類收到同樣票數(shù)的情形写隶,則最簡單的做法是隨機選擇一個倔撞,也可進一步考察學(xué)習(xí)器投票的置信度來確定最終勝者。

Bagging的算法描述如下圖:

Bagging的算法描述

從偏差-方差分解的角度看慕趴,Bagging主要關(guān)注降低方差(防止過擬合)痪蝇,因此它在不剪枝決策樹、神經(jīng)網(wǎng)絡(luò)等容易受樣本擾動的學(xué)習(xí)器上效用更為明顯冕房。

Bagging總結(jié):

□飭① ?Bagging通過降低基分類器的方差,改善了泛化誤差

“也帷② ?其性能依賴于基分類器的穩(wěn)定性给僵;如果基分類器不穩(wěn)定,bagging有助于降低訓(xùn)練數(shù)據(jù)的隨機波動導(dǎo)致的誤差详拙;如果穩(wěn)定帝际,則集成分類器的誤差主要由基分類器的偏倚引起

 ③ ?由于每個樣本被選中的概率相同溪厘,因此bagging并不側(cè)重于訓(xùn)練數(shù)據(jù)集中的任何特定實例

常用的集成算法類是隨機森林胡本。

  在隨機森林中工窍,集成中的每棵樹都是由從訓(xùn)練集中抽取的樣本(即 bootstrap 樣本)構(gòu)建的粉私。另外,與使用所有特征不同康铭,這里隨機選擇特征子集,從而進一步達到對樹的隨機化目的披粟。

具體來說咒锻,傳統(tǒng)決策樹在選擇劃分屬性時是在當前結(jié)點的屬性集合(假定有d個屬性)中選擇一個最有屬性;而在RF中守屉,對基決策樹的每個結(jié)點惑艇,先從該結(jié)點的屬性集合中隨機選擇一個包含k個屬性的子集,然后再從這個子集中選擇一個最優(yōu)屬性用于劃分拇泛。這里的參數(shù)k控制了隨機性的引入程度:若令k=d滨巴,則基決策樹的構(gòu)建與傳統(tǒng)決策樹相同;若令k=1俺叭,則是隨機選擇一個屬性用于劃分恭取;一般情況下,推薦值

RF簡單熄守、容易實現(xiàn)蜈垮、計算開銷小,而令人驚奇的是裕照,它在很多學(xué)習(xí)任務(wù)中展現(xiàn)出強大的性能攒发,被譽為“代表集成學(xué)習(xí)技術(shù)水平的方法”。

RF的收斂性與Bagging相似晋南。隨機森林的起始性能往往相對較差惠猿,特別是在集成中只包含一個基學(xué)習(xí)器時,這很容易理解搬俊,因為通過引入屬性擾動紊扬,隨機森林中個體學(xué)習(xí)器的性能往往有所降低。然而唉擂,隨著個體學(xué)習(xí)器數(shù)目的增加,隨機森林通常會收斂到更低的泛化誤差檀葛。

Random Forest算法參數(shù)解釋及調(diào)優(yōu):https://blog.csdn.net/iModel/article/details/80042862

2玩祟、Boosting

Boosting主要思想是將弱分類器組裝成一個強分類器。在PAC(probably approximately correct屿聋,概率近似正確)學(xué)習(xí)框架下空扎,則一定可以將弱分類器組裝成一個強分類器。

這一族算法的工作機制都是類似的:先從初始訓(xùn)練集訓(xùn)練出一個基學(xué)習(xí)器润讥,再根據(jù)基學(xué)習(xí)器的表現(xiàn)對訓(xùn)練樣本分布進行調(diào)整转锈,使得先前基學(xué)習(xí)器做錯的訓(xùn)練樣本在后續(xù)受到更多關(guān)注,然后基于調(diào)整后的樣本分布來訓(xùn)練下一個基學(xué)習(xí)器楚殿;如此重復(fù)進行撮慨,直至基學(xué)習(xí)器數(shù)目達到事先指定的值T,最終將這T個基學(xué)習(xí)器進行加權(quán)結(jié)合。Boosting族算法最著名的代表是AdaBoost砌溺。

Boosting算法要求基學(xué)習(xí)器對特定的數(shù)據(jù)分布進行學(xué)習(xí)影涉,這一點是通過“重賦權(quán)法”(re-weighting)實現(xiàn)的,即在訓(xùn)練過程的每一輪中规伐,根據(jù)樣本分布為每個訓(xùn)練樣本重新賦予一個權(quán)重蟹倾,對無法接受代全樣本的基學(xué)習(xí)算法,則可通過“重采樣法”(re-sampling)來處理猖闪,即在每一輪學(xué)習(xí)中鲜棠,根據(jù)樣本分布對訓(xùn)練集重新進行采樣,再用重采樣而得到的樣本集對基學(xué)習(xí)器進行訓(xùn)練培慌。一般而言豁陆,這兩種做法沒有顯著的優(yōu)劣差別。不過由于Boosting算法在訓(xùn)練的每一輪都會檢查當前生成的基學(xué)習(xí)器的性能是否比隨機猜測好检柬,若不符合則拋棄當前基學(xué)習(xí)器献联,并停止學(xué)習(xí)過程,這會導(dǎo)致最后的集成中只包含很少的基學(xué)習(xí)器而性能不佳何址。而若采用“重采樣閥”里逆,則可以獲得“重啟動”機會以避免訓(xùn)練過程的過早停止,即在拋棄不滿足條件的當前基學(xué)習(xí)器之后用爪,再根據(jù)當前分布重新對訓(xùn)練樣本進行重采樣原押,再基于新的采樣結(jié)果重新訓(xùn)練出基學(xué)習(xí)器,從而使得學(xué)習(xí)過程可以持續(xù)到預(yù)設(shè)的T輪完成偎血。

而從偏差-方差分解的角度看诸衔,Boosting主要關(guān)注降低偏差(避免欠擬合),因此Boosting能基于泛化性能相當弱的學(xué)習(xí)器構(gòu)建出很強的集成颇玷。

關(guān)于Boosting的兩個核心問題:

1)在每一輪如何改變訓(xùn)練數(shù)據(jù)的權(quán)值或概率分布笨农?

通過提高那些在前一輪被弱分類器分錯樣例的權(quán)值,減小前一輪分對樣例的權(quán)值帖渠,來使得分類器對誤分的數(shù)據(jù)有較好的效果谒亦。

2)通過什么方式來組合弱分類器?

通過加法模型將弱分類器進行線性組合空郊,比如:

AdaBoost(Adaptive boosting)算法:剛開始訓(xùn)練時對每一個訓(xùn)練例賦相等的權(quán)重份招,然后用該算法對訓(xùn)練集訓(xùn)練t輪,每次訓(xùn)練后狞甚,對訓(xùn)練失敗的訓(xùn)練例賦以較大的權(quán)重锁摔,也就是讓學(xué)習(xí)算法在每次學(xué)習(xí)以后更注意學(xué)錯的樣本,從而得到多個預(yù)測函數(shù)哼审。通過擬合殘差的方式逐步減小殘差谐腰,將每一步生成的模型疊加得到最終模型孕豹。

AdaBoost算法描述

Boosting的基本思想是通過某種方式使得每一輪基學(xué)習(xí)器在訓(xùn)練過程中更加關(guān)注上一輪學(xué)習(xí)錯誤的樣本,區(qū)別在于是采用何種方式怔蚌?AdaBoost采用的是增加上一輪學(xué)習(xí)錯誤樣本的權(quán)重的策略巩步,而在Gradient Boosting中則將負梯度作為上一輪基學(xué)習(xí)器犯錯的衡量指標,在下一輪學(xué)習(xí)中通過擬合負梯度來糾正上一輪犯的錯誤桦踊。

Gradient Boosting算法流程:

在Gradient Boosting框架中椅野,最常用的基學(xué)習(xí)器是決策樹 (一般是CART),二者結(jié)合就成了著名的梯度提升樹 (Gradient Boosting Decision Tree, GBDT)算法籍胯。GBDT(Gradient Boost Decision Tree)竟闪,每一次的計算是為了減少上一次的殘差,GBDT在殘差減少(負梯度)的方向上建立一個新的模型杖狼。

參考:https://www.cnblogs.com/massquantity/p/9174746.html

3炼蛤、Stacking

Stacking方法是指訓(xùn)練一個模型用于組合其他各個模型。首先我們先訓(xùn)練多個不同的模型蝶涩,然后把之前訓(xùn)練的各個模型的輸出為輸入來訓(xùn)練一個模型理朋,以得到一個最終的輸出。理論上绿聘,Stacking可以表示上面提到的兩種Ensemble方法嗽上,只要我們采用合適的模型組合策略即可。但在實際中熄攘,我們通常使用logistic回歸作為組合策略兽愤。

當訓(xùn)練數(shù)據(jù)很多時,一種更為強大的結(jié)合策略是使用“學(xué)習(xí)法”挪圾,即通過另一個學(xué)習(xí)器來進行結(jié)合浅萧。Stacking是學(xué)習(xí)法的典型代表,這里我們把個體學(xué)習(xí)器稱為初級學(xué)習(xí)器哲思,用于結(jié)合的學(xué)習(xí)器稱為次級或者元學(xué)習(xí)器洼畅。

Stacking先從初始訓(xùn)練集訓(xùn)練出初級學(xué)習(xí)器,然后“生成”一個新數(shù)據(jù)集用于訓(xùn)練次級學(xué)習(xí)器棚赔。在這個新數(shù)據(jù)集中土思,初級學(xué)習(xí)器的輸出被當作樣例輸入特征,而初始樣本的標記仍被當做樣例標記忆嗜。Stacking的算法描述如下圖所示,這里假定初始學(xué)習(xí)器使用不同學(xué)習(xí)算法產(chǎn)生(例如可同時包含決策樹崎岂,神經(jīng)網(wǎng)絡(luò)算法)捆毫,即初級集成是異質(zhì)的。

4冲甘、這幾個集成方法的使用

https://blog.csdn.net/willduan1/article/details/73618677

四绩卤、Bagging和Boosting二者之間的區(qū)別

1途样、Bagging和Boosting的區(qū)別:

1)樣本選擇上:

  Bagging:訓(xùn)練集是在原始集中有放回選取的,從原始集中選出的各輪訓(xùn)練集之間是獨立的濒憋。

  Boosting:每一輪的訓(xùn)練集不變何暇,只是訓(xùn)練集中每個樣例在分類器中的權(quán)重發(fā)生變化。而權(quán)值是根據(jù)上一輪的分類結(jié)果進行調(diào)整凛驮。

2)樣例權(quán)重:

  Bagging:使用均勻取樣裆站,每個樣例的權(quán)重相等

  Boosting:根據(jù)錯誤率不斷調(diào)整樣例的權(quán)值,錯誤率越大則權(quán)重越大黔夭。

3)預(yù)測函數(shù)權(quán)重:

  Bagging:所有預(yù)測函數(shù)的權(quán)重相等宏胯。

  Boosting:每個弱分類器都有相應(yīng)的權(quán)重,對于分類誤差小的分類器會有更大的權(quán)重本姥。

4)并行計算:

  Bagging:各個預(yù)測函數(shù)可以并行生成

  Boosting:各個預(yù)測函數(shù)只能順序生成肩袍,因為后一個模型參數(shù)需要前一輪模型的結(jié)果。

2婚惫、決策樹與這些算法框架進行結(jié)合所得到的新的算法:

  1)Bagging + 決策樹 = 隨機森林

  2)AdaBoost + 決策樹 = 提升樹

  3)Gradient Boosting + 決策樹 = GBDT

參考:

https://www.cnblogs.com/zongfa/p/9304353.html

https://blog.csdn.net/qq_32690999/article/details/78759463

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末氛赐,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子先舷,更是在濱河造成了極大的恐慌艰管,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,348評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件密浑,死亡現(xiàn)場離奇詭異蛙婴,居然都是意外死亡,警方通過查閱死者的電腦和手機尔破,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,122評論 2 385
  • 文/潘曉璐 我一進店門街图,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人懒构,你說我怎么就攤上這事餐济。” “怎么了胆剧?”我有些...
    開封第一講書人閱讀 156,936評論 0 347
  • 文/不壞的土叔 我叫張陵絮姆,是天一觀的道長。 經(jīng)常有香客問我秩霍,道長篙悯,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,427評論 1 283
  • 正文 為了忘掉前任铃绒,我火速辦了婚禮鸽照,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘颠悬。我一直安慰自己矮燎,他們只是感情好定血,可當我...
    茶點故事閱讀 65,467評論 6 385
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著诞外,像睡著了一般澜沟。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上峡谊,一...
    開封第一講書人閱讀 49,785評論 1 290
  • 那天茫虽,我揣著相機與錄音,去河邊找鬼靖苇。 笑死席噩,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的贤壁。 我是一名探鬼主播悼枢,決...
    沈念sama閱讀 38,931評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼脾拆!你這毒婦竟也來了馒索?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,696評論 0 266
  • 序言:老撾萬榮一對情侶失蹤名船,失蹤者是張志新(化名)和其女友劉穎绰上,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體渠驼,經(jīng)...
    沈念sama閱讀 44,141評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡蜈块,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,483評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了迷扇。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片百揭。...
    茶點故事閱讀 38,625評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖蜓席,靈堂內(nèi)的尸體忽然破棺而出器一,到底是詐尸還是另有隱情,我是刑警寧澤厨内,帶...
    沈念sama閱讀 34,291評論 4 329
  • 正文 年R本政府宣布祈秕,位于F島的核電站,受9級特大地震影響雏胃,放射性物質(zhì)發(fā)生泄漏请毛。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,892評論 3 312
  • 文/蒙蒙 一瞭亮、第九天 我趴在偏房一處隱蔽的房頂上張望获印。 院中可真熱鬧,春花似錦、人聲如沸兼丰。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽鳍征。三九已至,卻和暖如春面徽,著一層夾襖步出監(jiān)牢的瞬間艳丛,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工趟紊, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留氮双,地道東北人。 一個月前我還...
    沈念sama閱讀 46,324評論 2 360
  • 正文 我出身青樓霎匈,卻偏偏與公主長得像戴差,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子铛嘱,可洞房花燭夜當晚...
    茶點故事閱讀 43,492評論 2 348