基于樹(shù)的集成學(xué)習(xí)簡(jiǎn)介(bagging, boosting, stacking)

基本思路:集成學(xué)習(xí)的思路是通過(guò)合并多個(gè)模型來(lái)提升機(jī)器學(xué)習(xí)的技能,相對(duì)于單個(gè)模型通??梢垣@得更好的預(yù)測(cè)結(jié)果。

分類(lèi)1:用于減少方差的bagging, 用于減少偏差的boosting, 用于提升預(yù)測(cè)結(jié)果的stacking

分類(lèi)2:?

串行集成方法,這種方法串行地生成基礎(chǔ)模型(如AdaBoost)。串行集成的基本動(dòng)機(jī)是利用基礎(chǔ)模型之間的依賴(lài)。通過(guò)給錯(cuò)分樣本一個(gè)較大的權(quán)重來(lái)提升性能。

并行集成方法,這種方法并行地生成基礎(chǔ)模型(如Random Forest)。并行集成的基本動(dòng)機(jī)是利用基礎(chǔ)模型的獨(dú)立性,因?yàn)橥ㄟ^(guò)平均能夠較大地降低誤差。

Bagging(袋裝):訓(xùn)練集隨機(jī)采樣

Bagging是引導(dǎo)聚合的意思。減少一個(gè)估計(jì)方差的一種方式就是對(duì)多個(gè)估計(jì)進(jìn)行平均。例如,隨機(jī)選擇訓(xùn)練集的不同子集,訓(xùn)練M個(gè)不同的樹(shù),然后求平均計(jì)算最后的結(jié)果。

Bagging使用裝袋采樣來(lái)獲取數(shù)據(jù)子集訓(xùn)練基礎(chǔ)學(xué)習(xí)器。通常分類(lèi)任務(wù)使用投票的方式集成,而回歸任務(wù)通過(guò)平均的方式集成。

tips1:?隨機(jī)選擇80%的數(shù)據(jù)作為訓(xùn)練集,同樣隨機(jī)選擇80%的特征進(jìn)行訓(xùn)練。

tips2:?整合穩(wěn)定學(xué)習(xí)器對(duì)于提升泛化性能沒(méi)有幫助。

tips3: 最常用的集成算法原模型是隨機(jī)森林。

Boosting(提高):加權(quán)錯(cuò)分?jǐn)?shù)據(jù)迭代弱分類(lèi)器

Boosting是指通過(guò)算法集合將弱學(xué)習(xí)器(弱學(xué)習(xí)器是指僅比隨機(jī)猜測(cè)好一點(diǎn)點(diǎn)的模型)轉(zhuǎn)換為強(qiáng)學(xué)習(xí)器。boosting的主要原則是訓(xùn)練一系列的弱學(xué)習(xí)器,例如較小的決策樹(shù),進(jìn)行不斷的迭代,且在訓(xùn)練的早期對(duì)于錯(cuò)分?jǐn)?shù)據(jù)給予較大的權(quán)重。

對(duì)于訓(xùn)練好的弱分類(lèi)器,如果是分類(lèi)任務(wù)按照權(quán)重進(jìn)行投票,而對(duì)于回歸任務(wù)進(jìn)行加權(quán),然后再進(jìn)行預(yù)測(cè)。boosting和bagging的區(qū)別在于是對(duì)加權(quán)后的數(shù)據(jù)利用弱分類(lèi)器依次進(jìn)行訓(xùn)練。

梯度樹(shù)提升(Gradient Tree Boosting)是一個(gè)boosting算法在損失函數(shù)上的泛化。能夠用于分類(lèi)和回歸問(wèn)題。Gradient Boosting采用串行方式構(gòu)建模型。

每新增一個(gè)決策樹(shù)hm(x)都盡可能的選擇是的當(dāng)前模型Fm-1(x)損失最小的那個(gè):

注意:分類(lèi)和回歸使用的損失函數(shù)有所差別。

Stacking(堆疊):

Stacking是通過(guò)一個(gè)元分類(lèi)器或者元回歸器來(lái)整合多個(gè)分類(lèi)模型或回歸模型的集成學(xué)習(xí)技術(shù)?;A(chǔ)模型利用整個(gè)訓(xùn)練集做訓(xùn)練,元模型將基礎(chǔ)模型的特征作為特征進(jìn)行訓(xùn)練。

基礎(chǔ)模型通常包含不同的學(xué)習(xí)算法,因此stacking通常是異質(zhì)集成。例如分別在K-NN,Random Forest,Naive Bayes做訓(xùn)練和預(yù)測(cè),然后將其輸出結(jié)果作為特征,利用邏輯回歸作為元模型進(jìn)一步訓(xùn)練。如圖所示,stacking集成的結(jié)果由于每個(gè)基礎(chǔ)模型,并且沒(méi)有過(guò)擬合。

Code:https://github.com/vsmolyakov/experiments_with_python/blob/master/chp01/ensemble_methods.ipynb

Reference:https://blog.statsbot.co/ensemble-learning-d1dcd548e936

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容