基本思路:集成學(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