2019-03-02

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

個體與集成

集成學(xué)習(xí):構(gòu)建并結(jié)合多個學(xué)習(xí)器來完成學(xué)習(xí)任務(wù)担神。

集成學(xué)習(xí)示意圖

同質(zhì):集成中只包含同種類型的個體學(xué)習(xí)器(基學(xué)習(xí)器);

異質(zhì):集成中的個體學(xué)習(xí)器(組件學(xué)習(xí)器)由不同學(xué)習(xí)算法生成蚕冬。

個體學(xué)習(xí)器的“準(zhǔn)確性”和“多樣性”很重要,且相互沖突。

集成個體應(yīng)“好而不同”

分類:個體學(xué)習(xí)器間存在強(qiáng)依賴關(guān)系诡宗,必須串行生成的序列化方法两波,eg瞳步,Boosting;個體學(xué)習(xí)器間不存在強(qiáng)依賴關(guān)系腰奋,可同時(shí)生成的并行化方法单起,eg,Bagging和隨機(jī)森林劣坊。

Boosting

boosting算法原理圖

工作機(jī)制:先從初始訓(xùn)練集訓(xùn)練出一個基學(xué)習(xí)器1嘀倒,根據(jù)基學(xué)習(xí)器誤差率表現(xiàn)更新訓(xùn)練樣本權(quán)重,使弱學(xué)習(xí)器1學(xué)習(xí)誤差率高的訓(xùn)練樣本權(quán)重變高局冰,讓這些點(diǎn)在弱學(xué)習(xí)器2中得到更多的重視测蘑,然后基于調(diào)整權(quán)重后的訓(xùn)練集訓(xùn)練學(xué)習(xí)器2,...重復(fù)進(jìn)行,直至弱學(xué)習(xí)器數(shù)目達(dá)到指定的值T康二,最終將這T個基學(xué)習(xí)器進(jìn)行加權(quán)結(jié)合帮寻。

AdaBoost

Boosting族算法最著名的代表是AdaBoost,是“Adaptive Boosting(自適應(yīng)增強(qiáng))”的縮寫赠摇。它的自適應(yīng)在于:前一個基本分類器分錯的樣本會得到加強(qiáng)固逗,加權(quán)后的全體樣本再次被用來訓(xùn)練下一個基本分類器。同時(shí)藕帜,在每一輪中加入一個新的弱分類器烫罩,直到達(dá)到某個預(yù)定的足夠小的錯誤率或達(dá)到預(yù)先指定的最大迭代次數(shù)。

算法過程

AdaBoost算法流程圖

優(yōu)點(diǎn):作為分類器時(shí)精度很高洽故;在AdaBoost框架下贝攒,可使用各種回歸分類模型來構(gòu)建學(xué)習(xí)器;不易發(fā)生過擬合(會加入正則化項(xiàng))时甚。

缺點(diǎn):對異常樣本點(diǎn)敏感隘弊,異常樣本在迭代中可能會獲得較高的權(quán)重,影響最終的強(qiáng)學(xué)習(xí)器的預(yù)測準(zhǔn)確性荒适。

AdaBoost vs Logistic Regression

兩者均是0/1誤差的平滑近似:

GB梨熙、GBDT、xgboost

Gradient Boosting(GB)

梯度提升算法首先給定一個目標(biāo)損失函數(shù)刀诬,它的定義域是所有可行的基函數(shù)集合咽扇,提升算法通過迭代的選擇一個負(fù)梯度方向上的基函數(shù)來逐漸逼近局部最小值。

GB算法流程

GB每一次建立模型F_m(x)是在之前建立模型F_{m-1}(x)損失函數(shù)的梯度下降方向。一般認(rèn)為損失函數(shù)越小质欲,性能越好树埠,因此最好是使損失函數(shù)沿著梯度方向下降,模型得以不斷改進(jìn)提升性能嘶伟。

GBDT梯度提升決策樹算法

GBDT是GB和DT的結(jié)合怎憋,是以決策樹為基學(xué)習(xí)器的gb算法,此處的決策樹是回歸樹九昧。GBDT中的決策樹深度一般不超過5绊袋,葉子結(jié)點(diǎn)數(shù)不超過10。GBDT核心在于:每一棵樹學(xué)得是之前所有樹結(jié)論和的殘差耽装,這個殘差就是一個加預(yù)測值后能得真實(shí)值的累加量愤炸。比如A的真實(shí)年齡是18歲,但第一棵樹的預(yù)測年齡是12歲掉奄,差了6歲规个,即殘差為6歲。那么在第二棵樹里我們把A的年齡設(shè)為6歲去學(xué)習(xí)姓建,如果第二棵樹真的能把A分到6歲的葉子節(jié)點(diǎn)诞仓,那累加兩棵樹的結(jié)論就是A的真實(shí)年齡;如果第二棵樹的結(jié)論是5歲速兔,則A仍然存在1歲的殘差墅拭,第三棵樹里A的年齡就變成1歲,繼續(xù)學(xué)習(xí)涣狗。

xgboost

xgboost是在GBDT基本思路上改善而來谍婉,主要改變有

1)在損失函數(shù)中加入防止過擬合的懲罰函數(shù)

T是葉子的個數(shù),w是預(yù)測函數(shù)的參數(shù)镀钓,也就是決策樹算法下葉子節(jié)點(diǎn)的權(quán)重值穗熬。可以控制γ和λ這兩個超參數(shù)來調(diào)整正則化的懲罰力度丁溅。其實(shí)這里的懲罰函數(shù)也就定義了模型復(fù)雜度唤蔗,比如γ越大,λ越大窟赏,復(fù)雜度越小越不易過擬合妓柜。

2)用二階泰勒展式將損失函數(shù)展開,同時(shí)用到了一階和二階導(dǎo)數(shù)

第t次的loss:L^{(t)} =\sum_{i=1}^nl(y_i,\hat{y_i} ^{(t-1)} +f_t(x_i))+\Omega (f_t)

對上式做二階泰勒展開:g為一階導(dǎo)數(shù)涯穷,h為二階導(dǎo)數(shù)

3)CART回歸樹中尋找最佳分割點(diǎn)的衡量標(biāo)準(zhǔn)是最小化均方差棍掐,xgboost尋找分割點(diǎn)的標(biāo)準(zhǔn)是最大化,lamda求豫,gama與正則化項(xiàng)相關(guān)

xgboost算法的步驟和GB基本相同塌衰,都是首先初始化為一個常數(shù)诉稍,gb是根據(jù)一階導(dǎo)數(shù)ri蝠嘉,xgboost是根據(jù)一階導(dǎo)數(shù)gi和二階導(dǎo)數(shù)hi最疆,迭代生成基學(xué)習(xí)器,相加更新學(xué)習(xí)器蚤告。

https://www.analyticsvidhya.com/blog/2016/03/complete-guide-parameter-tuning-xgboost-with-codes-python/

Bagging與隨機(jī)森林

為得到泛化性能強(qiáng)的集成努酸,集成中的個體學(xué)習(xí)器應(yīng)盡可能相互獨(dú)立,考慮使用相互有交疊的采樣子集杜恰。

Bagging

并行式集成學(xué)習(xí)的最著名代表获诈,基于自助采樣法,算法流程如下:

優(yōu)點(diǎn):訓(xùn)練一個Bagging集成與直接使用基學(xué)習(xí)算法訓(xùn)練一個學(xué)習(xí)器的復(fù)雜度同階心褐;與標(biāo)準(zhǔn)AdaBoost只適用于二分類任務(wù)不同舔涎,Bagging能不經(jīng)修改的用于多分類、回歸任務(wù)逗爹;初始訓(xùn)練集63.2%用于訓(xùn)練亡嫌,36.8%用作驗(yàn)證集對泛化性能做“包外估計(jì)”。

但從偏差-方差分解角度看掘而,Bagging主要關(guān)注降低方差挟冠。

隨機(jī)森林(RF)

隨機(jī)森林是Bagging的一個擴(kuò)展變體,在以決策樹為基學(xué)習(xí)器構(gòu)建Bagging集成的基礎(chǔ)上袍睡,在決策樹訓(xùn)練過程中引入了隨機(jī)屬性選擇知染。即對基決策樹的每個結(jié)點(diǎn),先從該結(jié)點(diǎn)的屬性集合中隨機(jī)選擇一個包含k(k<d斑胜,d為所有屬性個數(shù))個屬性的子集控淡,然后從中選一個最優(yōu)屬性用于劃分。若k=d止潘,則為傳統(tǒng)決策樹掺炭;k=1,則隨機(jī)選擇一個屬性劃分覆山。一般推薦k=log_2d竹伸。

https://blog.csdn.net/qq547276542/article/details/78304454

RF起始性能相對較差,但隨著學(xué)習(xí)器數(shù)目的增加簇宽,會收斂到更低的泛化誤差勋篓。另外RF的訓(xùn)練效率常優(yōu)于Bagging,因?yàn)锽agging使用“確定型”決策樹魏割,選擇劃分屬性時(shí)要對結(jié)點(diǎn)所有屬性進(jìn)行考察譬嚣,而RF使用“隨機(jī)型”決策樹,只需考慮一個屬性子集钞它。

結(jié)合策略

學(xué)習(xí)器結(jié)合可能會從三個方面帶來好處:

1)統(tǒng)計(jì)方面:當(dāng)多個假設(shè)達(dá)到同等性能時(shí)拜银,可減小因誤選單學(xué)習(xí)器導(dǎo)致泛化性能不佳的風(fēng)險(xiǎn)殊鞭;

2)計(jì)算方面:降低陷入糟糕局部極小點(diǎn)的風(fēng)險(xiǎn);

3)表示方面:擴(kuò)大相應(yīng)假設(shè)空間尼桶,學(xué)習(xí)更好的近似操灿。

學(xué)習(xí)器結(jié)合從三方面帶來的好處

平均法

對數(shù)值型輸出h_i(x)\in R,最常見的結(jié)合策略是平均法泵督。

簡單平均:? ? ? ? ? ? ? ? ? ?H(x)=\frac{1}{T} \sum_{i=1}^Th_i(x)

(特殊的加權(quán)平均法趾盐,宜在個體學(xué)習(xí)器性能相近時(shí)使用)

加權(quán)平均法:? ? ? ? ? ? ? ? H(x)=\sum_{i=1}^Tw_ih_i(x)

其中w_i是個體學(xué)習(xí)器h_i的權(quán)重,一般從訓(xùn)練數(shù)據(jù)中學(xué)習(xí)而得小腊,通常要求w_i\geq 0,\sum_{i=1}^Tw_i=1 救鲤,宜在個體學(xué)習(xí)器相差較大時(shí)使用。

投票法

對分類任務(wù)秩冈,學(xué)習(xí)器從類別標(biāo)記集合中預(yù)測出一個標(biāo)記本缠,最常見的結(jié)合策略是投票法。

絕大多數(shù)投票法:

若學(xué)習(xí)任務(wù)要求必須提供預(yù)測入问,退化為相對多數(shù)投票法

相對多數(shù)投票法:

? ? ? ? ? ? ? ? ? ? ? ? ? ? ?H(x)=c_{\mathop{\arg\max}_{j} \sum\nolimits_{i=1}^Th_{i}^j(x)  }

預(yù)測為得票最多的標(biāo)記丹锹,若同時(shí)有多個標(biāo)記獲得最高票,則從中隨機(jī)選取一個队他。

加權(quán)投票法:

? ? ? ? ? ? ? ? ? ? ? ? ?H(x)=c_{\mathop{\arg\max}_{j} \sum\nolimits_{i=1}^Tw_ih_{i}^j(x)  }

與加權(quán)平均法類似卷仑,w_ih_i的權(quán)重,通常w_i\geq 0,\sum_{i=1}^Tw_i=1 麸折。

個體學(xué)習(xí)器的輸出類型:

類標(biāo)記:硬投票锡凝。h_{i}^j(x)\in \left\{ 0,1 \right\}  ,若h_i將樣本x預(yù)測為類別c_j則取值為1垢啼,否則為0窜锯。

類概率:軟投票。h_{i}^j(x)\in [ 0,1 ]  芭析,相當(dāng)于對后驗(yàn)概率P(c_j|x)的一個估計(jì)锚扎。

不同類型的h_{i}^j(x)值不能混用;對一些能在預(yù)測出類別標(biāo)記的同時(shí)產(chǎn)生分類置信度的學(xué)習(xí)器馁启,其分類置信度可轉(zhuǎn)化為類概率使用驾孔;分類置信度應(yīng)規(guī)范化后使用;基于類概率進(jìn)行結(jié)合優(yōu)于直接基于類標(biāo)記進(jìn)行結(jié)合惯疙;若基學(xué)習(xí)器類型不同翠勉,不能直接比較類概率值,應(yīng)先將其轉(zhuǎn)化為類標(biāo)記輸出(eg類概率輸出最大的設(shè)為1霉颠,其他為0)再投票对碌。

學(xué)習(xí)法

當(dāng)訓(xùn)練數(shù)據(jù)很多時(shí),常使用通過另一個學(xué)習(xí)器來進(jìn)行結(jié)合的“學(xué)習(xí)法”蒿偎,代表算法Stacking

第一階段獲得各個模型對樣本x1的預(yù)測標(biāo)簽值朽们;第二階段將各個模型的預(yù)測標(biāo)簽值作為一個新的特征(x1的真實(shí)標(biāo)簽值還是標(biāo)簽值)怀读,再用某個算法進(jìn)行訓(xùn)練,獲得一個融合模型骑脱,用這個融合模型進(jìn)行測試集的預(yù)測菜枷。

stacking算法流程


周志華《機(jī)器學(xué)習(xí)》

https://www.cnblogs.com/pinard/p/6131423.html

http://www.reibang.com/p/470556a108e2

https://www.cnblogs.com/wxquare/p/5541414.html

https://zhuanlan.zhihu.com/p/34325706

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市惜姐,隨后出現(xiàn)的幾起案子犁跪,更是在濱河造成了極大的恐慌椿息,老刑警劉巖歹袁,帶你破解...
    沈念sama閱讀 221,273評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異寝优,居然都是意外死亡条舔,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,349評論 3 398
  • 文/潘曉璐 我一進(jìn)店門乏矾,熙熙樓的掌柜王于貴愁眉苦臉地迎上來孟抗,“玉大人,你說我怎么就攤上這事钻心∑嗯穑” “怎么了?”我有些...
    開封第一講書人閱讀 167,709評論 0 360
  • 文/不壞的土叔 我叫張陵捷沸,是天一觀的道長摊沉。 經(jīng)常有香客問我,道長痒给,這世上最難降的妖魔是什么说墨? 我笑而不...
    開封第一講書人閱讀 59,520評論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮苍柏,結(jié)果婚禮上尼斧,老公的妹妹穿的比我還像新娘。我一直安慰自己试吁,他們只是感情好棺棵,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,515評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著熄捍,像睡著了一般烛恤。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上治唤,一...
    開封第一講書人閱讀 52,158評論 1 308
  • 那天棒动,我揣著相機(jī)與錄音,去河邊找鬼宾添。 笑死船惨,一個胖子當(dāng)著我的面吹牛柜裸,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播粱锐,決...
    沈念sama閱讀 40,755評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼疙挺,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了怜浅?” 一聲冷哼從身側(cè)響起铐然,我...
    開封第一講書人閱讀 39,660評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎恶座,沒想到半個月后搀暑,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,203評論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡跨琳,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,287評論 3 340
  • 正文 我和宋清朗相戀三年自点,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片脉让。...
    茶點(diǎn)故事閱讀 40,427評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡桂敛,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出溅潜,到底是詐尸還是另有隱情术唬,我是刑警寧澤,帶...
    沈念sama閱讀 36,122評論 5 349
  • 正文 年R本政府宣布滚澜,位于F島的核電站粗仓,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏博秫。R本人自食惡果不足惜潦牛,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,801評論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望挡育。 院中可真熱鬧巴碗,春花似錦、人聲如沸即寒。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,272評論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽母赵。三九已至逸爵,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間凹嘲,已是汗流浹背师倔。 一陣腳步聲響...
    開封第一講書人閱讀 33,393評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留周蹭,地道東北人趋艘。 一個月前我還...
    沈念sama閱讀 48,808評論 3 376
  • 正文 我出身青樓疲恢,卻偏偏與公主長得像,于是被迫代替她去往敵國和親瓷胧。 傳聞我的和親對象是個殘疾皇子显拳,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,440評論 2 359

推薦閱讀更多精彩內(nèi)容