日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

机器学习笔记(八)集成学习

發(fā)布時(shí)間:2025/4/16 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 机器学习笔记(八)集成学习 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

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

8.1個(gè)體與集成

集成學(xué)習(xí)(ansemblelearning)通過(guò)構(gòu)建并結(jié)合多個(gè)學(xué)習(xí)器來(lái)完成學(xué)習(xí)任務(wù),也稱為多分類器系統(tǒng)(multi-classifiersystem)、基于委員會(huì)的學(xué)習(xí)(committee-based learning)。

集成學(xué)習(xí)的一般結(jié)構(gòu):先產(chǎn)生一組個(gè)體學(xué)習(xí)器(individual learner),再用某種策略將它們結(jié)合起來(lái)。個(gè)體學(xué)習(xí)器通常由一個(gè)現(xiàn)有的學(xué)習(xí)算法從訓(xùn)練數(shù)據(jù)產(chǎn)生,如決策樹(shù)算法、BP神經(jīng)網(wǎng)絡(luò)等。如果集成中只包含同種類型的個(gè)體學(xué)習(xí)器,則集成是同質(zhì)的(homogeneous);同質(zhì)集成中的個(gè)體學(xué)習(xí)器也稱為基學(xué)習(xí)器(base learner),相應(yīng)的學(xué)習(xí)算法稱為基學(xué)習(xí)算法(base learningalgorithm)。如果集成中包含不同類型的個(gè)體學(xué)習(xí)器,則集成是異質(zhì)的(heterogenous);異質(zhì)集成中的個(gè)體學(xué)習(xí)器由不同的學(xué)習(xí)算法生成,個(gè)體學(xué)習(xí)器稱為組件學(xué)習(xí)器(component learner)。

說(shuō)了定義,那么集成學(xué)習(xí)器是否比個(gè)體學(xué)習(xí)器泛化性能更顯著呢?先引入弱學(xué)習(xí)器(weak learner)的定義,弱學(xué)習(xí)器常指泛化性能略優(yōu)于隨機(jī)猜測(cè)的學(xué)習(xí)器,例如在二分類問(wèn)題上精度略高于50%的分類器。換句話說(shuō),弱學(xué)習(xí)器的結(jié)果接近于靠猜。集成學(xué)習(xí)通過(guò)將多個(gè)學(xué)習(xí)器進(jìn)行結(jié)合,通常可以獲得比單一學(xué)習(xí)器顯著優(yōu)越的泛化性能,這對(duì)弱學(xué)習(xí)器尤其明顯,因此集成學(xué)習(xí)的很多理論研究是針對(duì)弱學(xué)習(xí)器進(jìn)行的,而基學(xué)習(xí)器有時(shí)也被直接成為弱學(xué)習(xí)器。

現(xiàn)在問(wèn)題是:集成學(xué)習(xí)把多個(gè)學(xué)習(xí)器結(jié)合起來(lái),怎樣能獲得比單一學(xué)習(xí)器更好的性能呢?要獲得好的集成,個(gè)體學(xué)習(xí)器應(yīng)好而不同,即個(gè)體學(xué)習(xí)器要有一定的準(zhǔn)確性,即學(xué)習(xí)器不太壞,并且要有多樣性(diversity),即學(xué)習(xí)器間具有差異。


如上,集成學(xué)習(xí)就是把所有個(gè)體學(xué)習(xí)器的結(jié)果做簡(jiǎn)單的投票,這樣就能獲得比個(gè)體學(xué)習(xí)器更好的泛化性能。等等,沒(méi)有這么好的事了,要這樣說(shuō),需要滿足一個(gè)關(guān)鍵假設(shè):基學(xué)習(xí)器的誤差相互獨(dú)立。然后在現(xiàn)實(shí)任務(wù)中,個(gè)體學(xué)習(xí)器時(shí)為解決同一問(wèn)題訓(xùn)練出來(lái)的,它們顯然不可能相互獨(dú)立。事實(shí)上,個(gè)體學(xué)習(xí)器的準(zhǔn)確性和多樣性本身就存在沖突。一般的,準(zhǔn)確性很高之后,要增加多樣性就要犧牲準(zhǔn)確性。

因此,如何產(chǎn)生并結(jié)合好而不同的個(gè)體學(xué)習(xí)器,就是集成學(xué)習(xí)研究的核心,就是怎么集成?集成怎么樣的個(gè)體學(xué)習(xí)器?根據(jù)個(gè)體學(xué)習(xí)器的生成方式,目前的集成學(xué)習(xí)方法大致可分為兩大類:1)個(gè)體學(xué)習(xí)器間存在強(qiáng)依賴關(guān)系、必須串行生成的序列化方法,代表是Boosting;2)個(gè)體學(xué)習(xí)器間不存在強(qiáng)依賴關(guān)系、可同時(shí)生成的并行化方法,代表是Bagging和隨機(jī)森林(Random Forest)。

8.2Boosting

Boosting是一族可將弱學(xué)習(xí)器提升為強(qiáng)學(xué)習(xí)器的算法。這族算法的工作機(jī)制類似:先從初始訓(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é)合。簡(jiǎn)單來(lái)說(shuō),就是基于同一訓(xùn)練集和同一個(gè)算法訓(xùn)練出T個(gè)基學(xué)習(xí)器,每一輪訓(xùn)練都針對(duì)上一輪的訓(xùn)練結(jié)果調(diào)整樣本分布。

Boosting族算法最著名的代表是AdaBoost,其中y i∈{-1,+1},f是真實(shí)函數(shù),算法描述如下:




這個(gè)就是算法中的樣本分布更新公式。

上面這三點(diǎn)的公式,從基于加性模型迭代式優(yōu)化指數(shù)損失函數(shù)的角度推導(dǎo)出了AdaBoost算法。

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)練。這兩種方法無(wú)優(yōu)劣差別。

Boosting算法在訓(xùn)練的每一輪都要檢查當(dāng)前生成的基學(xué)習(xí)器是否滿足基本條件(如AdaBoost中檢查當(dāng)前基分類器是否是比隨機(jī)猜測(cè)好),一旦條件不滿足,則當(dāng)前基學(xué)習(xí)器即被拋棄,且學(xué)習(xí)過(guò)程停止。在此種情形下,初始設(shè)置的學(xué)習(xí)輪數(shù)T也許還遠(yuǎn)未達(dá)到,可能導(dǎo)致最終集成中值包含很少的基學(xué)習(xí)器而性能不佳。若采用重采樣法,則可獲得重啟動(dòng)機(jī)會(huì)以避免訓(xùn)練過(guò)程過(guò)早停止,即在不拋棄不滿足條件的當(dāng)前基學(xué)習(xí)器之后,可根據(jù)當(dāng)前分布重新對(duì)訓(xùn)練樣本進(jìn)行采樣,再基于新的采樣結(jié)果重新訓(xùn)練出基學(xué)習(xí)器,從而使得學(xué)習(xí)過(guò)程可以持續(xù)到預(yù)設(shè)的T輪完成。

從偏差-方差分解的角度看,Boosting主要關(guān)注降低偏差。偏差描述的是預(yù)測(cè)值(估計(jì)值)的期望與真實(shí)值之間的差距;偏差越大,越偏離真實(shí)數(shù)據(jù)。方差描述的是預(yù)測(cè)值的變化范圍,離散程度,也就是離其期望值的距離;方差越大,數(shù)據(jù)的分布越分散。因此Boosting能基于泛化性能相當(dāng)弱的學(xué)習(xí)器構(gòu)建出很強(qiáng)的集成。可以參照文中的西瓜數(shù)據(jù)集并以決策樹(shù)樁為基學(xué)習(xí)器運(yùn)行AdaBoost算法,比較不同規(guī)模的集成及其基學(xué)習(xí)器所對(duì)應(yīng)的分類邊界。

?

8.3Bagging與隨機(jī)森林

本文說(shuō)明采用并行化的個(gè)體學(xué)習(xí)器生成方式,和上文的Boosting串行化要求個(gè)體學(xué)習(xí)器存在強(qiáng)依賴關(guān)系不同的是,該生成方式是基于個(gè)體學(xué)習(xí)器應(yīng)盡可能相互獨(dú)立。獨(dú)立的個(gè)體學(xué)習(xí)器可以得到泛化性能強(qiáng)的集成;當(dāng)然現(xiàn)實(shí)中不存在絕對(duì)的獨(dú)立,不過(guò)可以設(shè)法使基學(xué)習(xí)器盡可能具有較大差異。一種方法就是對(duì)訓(xùn)練樣本進(jìn)行采樣,產(chǎn)生出若干個(gè)不同的子集,再?gòu)拿總€(gè)數(shù)據(jù)集子集中訓(xùn)練出一個(gè)基學(xué)習(xí)器。不過(guò)如果采樣出的每個(gè)子集完全不同,那么每個(gè)基學(xué)習(xí)器只用到了部分訓(xùn)練數(shù)據(jù),可能都無(wú)法進(jìn)行有效學(xué)習(xí)。因此,考慮使用相互有交疊的采樣子集。


假定基學(xué)習(xí)器的計(jì)算復(fù)雜度為O(m),則Bagging的復(fù)雜度大致為T(mén)(O(m)+O(s)),因采樣與投票/平均過(guò)程的復(fù)雜度O(s)很小,且T是一個(gè)不太大的常數(shù)(訓(xùn)練輪數(shù)),因此,訓(xùn)練一個(gè)Bagging集成與直接使用基學(xué)習(xí)算法訓(xùn)練一個(gè)學(xué)習(xí)器的復(fù)雜度同階,可見(jiàn)Bagging是一個(gè)高效的集成學(xué)習(xí)算法。與標(biāo)準(zhǔn)的AdaBoost算法只適用于二分類任務(wù)不同,Bagging能不經(jīng)修改地用于多分類、回歸等任務(wù)。

自助采樣過(guò)程還給Bagging帶來(lái)一個(gè)優(yōu)點(diǎn):由于每個(gè)基學(xué)習(xí)器只使用了初始訓(xùn)練集中約63.2%的樣本,剩下的約36.8%的樣本可用作驗(yàn)證集來(lái)對(duì)泛化性能進(jìn)行包外估計(jì)(out-of-bag estimate),為此需記錄每個(gè)基學(xué)習(xí)器所使用的訓(xùn)練樣本。令D t表示h t實(shí)際使用的訓(xùn)練樣本集,令H oob(x)表示對(duì)樣本x的包外預(yù)測(cè),即僅考慮哪些未使用x訓(xùn)練的基學(xué)習(xí)器在x上的預(yù)測(cè),有:


事實(shí)上,包外樣本還有其他用途,如當(dāng)基學(xué)習(xí)器是決策樹(shù)時(shí),可使用包外樣本來(lái)輔助剪枝,或用于估計(jì)決策樹(shù)中各結(jié)點(diǎn)的后驗(yàn)概率以輔助對(duì)零訓(xùn)練樣本結(jié)點(diǎn)的處理;當(dāng)基學(xué)習(xí)器是神經(jīng)網(wǎng)絡(luò)時(shí),可使用包外樣本來(lái)輔助早起停止以減小過(guò)擬合風(fēng)險(xiǎn)。

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

隨機(jī)森林(RandomForest,簡(jiǎn)稱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)屬性用于劃分。參數(shù)k控制了隨機(jī)性的引入程度:若令k=d,則基決策樹(shù)的構(gòu)建與傳統(tǒng)決策樹(shù)相同;若令k=1,則是隨機(jī)選擇一個(gè)屬性用于劃分;一般情況下,推薦值k=log2d。

隨機(jī)森林簡(jiǎn)單、容易實(shí)現(xiàn)、計(jì)算開(kāi)銷小,在很多現(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í)器之間差異度的增加來(lái)進(jìn)一步提升。

隨機(jī)森林的收斂性與Bagging相似。隨機(jī)森林的起始性能往往相對(duì)較差,特別是在集成中只包含一個(gè)基學(xué)習(xí)器時(shí),因?yàn)橥ㄟ^(guò)引入屬性擾動(dòng),隨機(jī)森林中個(gè)體學(xué)習(xí)器的性能往往有所降低,然后隨著個(gè)體學(xué)習(xí)器的數(shù)目增加,隨機(jī)森林通常會(huì)收斂到更低的泛化誤差。隨機(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è)屬性子集。

其實(shí)對(duì)于集成學(xué)習(xí),首先要證明的就是為什么集成比個(gè)體好?第一節(jié)已證明,隨著集成中個(gè)體分類器數(shù)目T的增大,集成的錯(cuò)誤率將指數(shù)級(jí)下降。既然集成比個(gè)體好,那么如何生成基學(xué)習(xí)器并結(jié)合呢?第二節(jié)和第三節(jié)分別從個(gè)體學(xué)習(xí)器生成的不同方式介紹了串行Boosting方法和并行Bagging方法,這里主要說(shuō)明過(guò)了個(gè)體生成方法,而對(duì)結(jié)合方法則采用簡(jiǎn)單投票法或平均法,那么下一節(jié)就會(huì)重點(diǎn)說(shuō)明基學(xué)習(xí)器如何結(jié)合更好得到集成學(xué)習(xí)器。

8.4結(jié)合策略

對(duì)于個(gè)體學(xué)習(xí)器生成方式,上面介紹了串行的Boosting和并行的Bagging,那么這里就要說(shuō)到個(gè)體學(xué)習(xí)器生成之后如何結(jié)合,從而形成集成學(xué)習(xí)的效應(yīng)。

集成學(xué)習(xí)器由三方面的好處:

1)統(tǒng)計(jì)上,由于學(xué)習(xí)任務(wù)的假設(shè)空間往往很大,可能有多個(gè)假設(shè)在訓(xùn)練集上達(dá)到同等性能,此時(shí)若使用單學(xué)習(xí)器可能因誤選而導(dǎo)致泛化性能不佳,結(jié)合多個(gè)學(xué)習(xí)器則會(huì)減小這一風(fēng)險(xiǎn);

2)計(jì)算上,學(xué)習(xí)算法往往會(huì)陷入局部極小,有的局部極小點(diǎn)所對(duì)應(yīng)的泛化性能可能很差,而通過(guò)多次運(yùn)行之后進(jìn)行結(jié)合,可降低陷入較差的局部極小點(diǎn)風(fēng)險(xiǎn);

3)表示上,某些學(xué)習(xí)任務(wù)的真實(shí)假設(shè)可能不在當(dāng)前學(xué)習(xí)算法所考慮的假設(shè)空間中,此時(shí)若使用單學(xué)習(xí)器是無(wú)效的,而通過(guò)結(jié)合多個(gè)學(xué)習(xí)器,由于相應(yīng)假設(shè)空間有所擴(kuò)大,有可能學(xué)得更好的近似。

一言以蔽之,不斷迭代和結(jié)合總能克服單個(gè)的缺陷。假定集成包含T個(gè)基學(xué)習(xí)器{h 1,h 2,…,h T},其中h i在示例x上的輸出為h i(x)。下面三種是常見(jiàn)的對(duì)h i進(jìn)行結(jié)合的策略。



信度可轉(zhuǎn)化為類概率使用。若此類值未進(jìn)行規(guī)范化,例如支持向量機(jī)的分類間隔值,則必須使用一些技術(shù)如Platt縮放(Platt scaling)、等分回歸(isotonic regression)等進(jìn)行校準(zhǔn)(calibration)后才能作為類概率使用。雖然分類器估計(jì)出的類概率值一般都不太準(zhǔn)確,但基于類概率進(jìn)行結(jié)合卻往往比直接基于類標(biāo)記進(jìn)行結(jié)合性能更好。若基學(xué)習(xí)器的類型不同,則其類概率值不能直接進(jìn)行比較,這種情形下,通常可將類概率值轉(zhuǎn)化為類標(biāo)記輸出然后再投票。

3)學(xué)習(xí)法

當(dāng)訓(xùn)練數(shù)據(jù)很多時(shí),用學(xué)習(xí)法的結(jié)合策略集成,通過(guò)另一個(gè)學(xué)習(xí)器來(lái)進(jìn)行結(jié)合。Stacking是學(xué)習(xí)法的典型代表,個(gè)體學(xué)習(xí)器稱為初級(jí)學(xué)習(xí)器,用于結(jié)合的學(xué)習(xí)器稱為次級(jí)學(xué)習(xí)器或元學(xué)習(xí)器(meta-learner)。

Stacking先從初始數(shù)據(jù)集訓(xùn)練出初級(jí)學(xué)習(xí)器,然后生成一個(gè)新數(shù)據(jù)集用于訓(xùn)練次級(jí)學(xué)習(xí)器。在這個(gè)新數(shù)據(jù)集中,初級(jí)學(xué)習(xí)器的輸出被當(dāng)做樣例輸入特征,而初始樣本的標(biāo)記仍被當(dāng)做樣例標(biāo)記。假定初級(jí)學(xué)習(xí)器使用不同學(xué)習(xí)算法產(chǎn)生,即初級(jí)集成是異質(zhì)的,算法描述如下:


次級(jí)學(xué)習(xí)器的輸入屬性表示和次級(jí)學(xué)習(xí)算法對(duì)Stacking集成的泛化性能有很大影響。研究表明,將初級(jí)學(xué)習(xí)器的輸出類概率作為次級(jí)學(xué)習(xí)器的輸入屬性,用多響應(yīng)線性回歸(multi-response linear regression,MLR)作為次級(jí)學(xué)習(xí)算法效果較好,在MLR中使用不同的屬性集更佳。

貝葉斯模型平均(bayes model averaging,BMA)基于后驗(yàn)概率來(lái)為不同模型賦予權(quán)重,可視為加權(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ì)買(mǎi)模型近似誤差非常敏感。

個(gè)人感覺(jué),集成的結(jié)合策略是一個(gè)因地制宜的解決方案,前人摸索的也只能作為參考,在實(shí)際應(yīng)用中,還要考慮訓(xùn)練集的獨(dú)特性。

8.5多樣性

從基學(xué)習(xí)器生成方式到結(jié)合策略都做了介紹,這一節(jié)主要是說(shuō)如何構(gòu)架多樣性的基學(xué)習(xí)器。要構(gòu)建泛化能力強(qiáng)的集成,個(gè)體學(xué)習(xí)學(xué)習(xí)器應(yīng)好而不同,其理論分析如下。


求解,就可以得到最優(yōu)集成了。實(shí)則不然,因?yàn)?是在集成構(gòu)造之后才能進(jìn)行估計(jì),所以不是一個(gè)可直接操作的多樣性度量,換句話說(shuō),用于事后評(píng)估但無(wú)法事前求解。另外值得注意的是,這個(gè)理論的推導(dǎo)過(guò)程只適用于回歸學(xué)習(xí),不能直接推廣到分類任務(wù)上去。從誤差-分歧分解的過(guò)程就可以看出,無(wú)論是預(yù)測(cè)輸出的結(jié)果還是概率密度都體現(xiàn)了連續(xù)性。

證明了好而不同的個(gè)體學(xué)習(xí)器可構(gòu)建強(qiáng)大泛化性能的集成學(xué)習(xí)器,那么怎么定義個(gè)體學(xué)習(xí)器是不同的呢?是多樣性的呢?用多樣性度量指標(biāo)。顧名思義,多樣性度量(diversity measure)是用于度量集成中個(gè)體分類器的多樣性,即估算個(gè)體學(xué)習(xí)器的多樣化程度。要比較差異化,典型做法就是對(duì)個(gè)體分類器進(jìn)行兩兩相似或不相似性分析。

給定數(shù)據(jù)集D={(x1,y1),(x2,y2),…,(xm,ym)},對(duì)二分類任務(wù),yi∈{-1,+1},分類器hi和hj的預(yù)測(cè)結(jié)果列聯(lián)表(contingency table)為:

?

hi=+1

hi=-1

hj=+1

hj=-1??

a

b

c

d

其中,a表示hi和hj均預(yù)測(cè)為正類的樣本數(shù)目,b、c、d含義類推;m=a+b+c+d。

基于這個(gè)列聯(lián)表,常見(jiàn)的多樣性度量:


我們肯定了好而不同的個(gè)體學(xué)習(xí)器集成之后泛化性能更佳,也給出如何評(píng)估多樣性的個(gè)體學(xué)習(xí)器,那么問(wèn)題是怎么讓個(gè)體學(xué)習(xí)器呈現(xiàn)多樣性呢?尤其是同質(zhì)個(gè)體學(xué)習(xí)器。這里就要說(shuō)到如何增強(qiáng)個(gè)體學(xué)習(xí)器多樣性的方法。一般思路是在學(xué)習(xí)過(guò)程中引入隨機(jī)性,常見(jiàn)做法主要是對(duì)數(shù)據(jù)樣本、輸入屬性、輸出表示、算法參數(shù)進(jìn)行擾動(dòng)。

1)數(shù)據(jù)樣本擾動(dòng)

給定初始數(shù)據(jù)集,從中產(chǎn)生出不同的數(shù)據(jù)子集,再利用不同的數(shù)據(jù)子集訓(xùn)練出不同的個(gè)體學(xué)習(xí)器。數(shù)據(jù)樣本擾動(dòng)通常是基于采樣法,如在Bagging中采用自助采樣、Adaboost中采用序列采樣等。很多常見(jiàn)的基學(xué)習(xí)器,如決策樹(shù)、神經(jīng)網(wǎng)絡(luò)等,訓(xùn)練樣本稍加變化就會(huì)導(dǎo)致學(xué)習(xí)器顯著變動(dòng),數(shù)據(jù)樣本擾動(dòng)對(duì)這類不穩(wěn)定基學(xué)習(xí)器很有效。但有些基學(xué)習(xí)器對(duì)數(shù)據(jù)樣本的擾動(dòng)不敏感,如線性學(xué)習(xí)器、支持向量機(jī)、樸素貝葉斯、k近鄰學(xué)習(xí)器等,這類基學(xué)習(xí)器稱為穩(wěn)定學(xué)習(xí)器(stable base learner),對(duì)該類基學(xué)習(xí)器進(jìn)行集成往往需使用輸入屬性擾動(dòng)等其他機(jī)制。

2)輸入屬性擾動(dòng)

訓(xùn)練樣本通常由一組屬性描述,不同的子空間(subspace,即屬性子集)提供了觀察數(shù)據(jù)的不同視角。顯然,從不同子空間訓(xùn)練出的個(gè)體學(xué)習(xí)器必然有所不同。隨機(jī)子空間算法(random subspace)就依賴于輸入屬性擾動(dòng),算法從初始屬性集中抽取出若干個(gè)屬性子集,再基于每個(gè)屬性子集訓(xùn)練一個(gè)基學(xué)習(xí)器。算法如下:


對(duì)包含大量冗余屬性的數(shù)據(jù),在子空間中訓(xùn)練個(gè)體學(xué)習(xí)器不僅能產(chǎn)生多樣性大的擾動(dòng),還會(huì)因?qū)傩詳?shù)的減少而大幅節(jié)省時(shí)間開(kāi)銷,同時(shí),由于冗余屬性多,減少一些屬性后訓(xùn)練出的個(gè)體學(xué)習(xí)器也不至于太差。若數(shù)據(jù)只包含少量屬性,或者冗余屬性較少,則不宜使用輸入屬性擾動(dòng)法。

3)輸出表示擾動(dòng)

思路是對(duì)輸出表示進(jìn)行操作以增強(qiáng)多樣性。可對(duì)訓(xùn)練個(gè)樣本的類標(biāo)記稍作變動(dòng),如翻轉(zhuǎn)法(flipping output)隨機(jī)改變一些訓(xùn)練樣本的標(biāo)記,也可對(duì)輸出表示進(jìn)行轉(zhuǎn)化,如輸出調(diào)制法(output smearing)將分類輸出轉(zhuǎn)化為回歸輸出后構(gòu)建個(gè)體學(xué)習(xí)器;還可將原任務(wù)拆解為多個(gè)可同時(shí)求解的子任務(wù),如ECOC法利用糾錯(cuò)輸出碼將多分類任務(wù)拆解為一系列二分類任務(wù)來(lái)訓(xùn)練基學(xué)習(xí)器。

4)算法參數(shù)擾動(dòng)

基學(xué)習(xí)算法一般都有參數(shù)設(shè)置,如神經(jīng)網(wǎng)絡(luò)的隱層神經(jīng)元數(shù)、初始連接權(quán)值等,通過(guò)隨機(jī)設(shè)置不同的參數(shù),往往可產(chǎn)生差別較大的個(gè)體學(xué)習(xí)器。如負(fù)相關(guān)法(Negative Correlation)顯示地通過(guò)正則化項(xiàng)來(lái)強(qiáng)制個(gè)體神經(jīng)網(wǎng)絡(luò)使用不同的參數(shù)。對(duì)參數(shù)較少的算法,可通過(guò)將其學(xué)習(xí)過(guò)程中某些環(huán)節(jié)用其他類似方式代替,從而達(dá)到擾動(dòng)的目的,如可將決策樹(shù)使用的屬性選擇機(jī)制替換成其他屬性選擇機(jī)制。使用單一學(xué)習(xí)器時(shí)通常需使用交叉驗(yàn)證等方法來(lái)確定參數(shù)值,這事實(shí)上已使用了不同參數(shù)訓(xùn)練出多個(gè)學(xué)習(xí)器,只不過(guò)最終僅選擇其中一個(gè)學(xué)習(xí)器進(jìn)行使用,而集成學(xué)習(xí)則相當(dāng)于把這些學(xué)習(xí)器都利用起來(lái);由此可見(jiàn),集成學(xué)習(xí)技術(shù)的實(shí)際計(jì)算開(kāi)銷并不比使用單一學(xué)習(xí)器大很多。

不同的多樣性增強(qiáng)機(jī)制可同時(shí)使用,如隨機(jī)森林中同時(shí)使用了數(shù)據(jù)樣本擾動(dòng)和輸入屬性擾動(dòng)。


總結(jié)

以上是生活随笔為你收集整理的机器学习笔记(八)集成学习的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。