模型融合算法概念算法
它不是具體的指某一個算法,而是一種把多個弱模型融合合併在一塊兒變成一個強模型的思想框架
用模型融合算法的緣由性能
一、單個模型容易過擬合,多個模型融合能夠提升範化能力學習
二、單個模型預測能力不高,多個模型每每能提升預測能力spa
三、對於數據集過大或太小,能夠分別進行劃分和有放回的操做,產生不一樣的數據子集,而後經過數據子集訓練不一樣的分類模型,最終合併成一個大的分類器3d
四、對於多個異構的特徵集的時候,很難進行融合,能夠考慮每一個數據集構建一個分類模型,而後將多個模型融合blog
五、模型融合算法成功的關鍵在於能保證弱分類器(弱模型)的多樣性,融合不穩定的學習算法能獲得更明顯的性能提高效率
融合模型示例基礎
一個天氣預報的示例,能夠看到多個模型融合後能夠顯著提高預測效果:5個子模型平均都會有兩個到三個的錯誤,可是使用少數服從多數的投票法融合以後,最終的預測結果100%正確原理
模型融合基礎算法:
投票法(Voting):若是是分類模型,每一個模型都會給出一個類別預測結果,經過投票的方式,按照少數服從多數的原則融合獲得一個新的預測結果。
均值法(Averaging):若是是迴歸模型,每一個模型給出的預測結果都是數值型的,這時候咱們能夠經過求全部子模型的預測結果的均值做爲最終的融合結果
Bagging融合框架:
Bagging融合的原理是採用有放回的抽樣,即每次從訓練樣本中隨機取出一個樣本,並且每次抽取的樣本數量與整體的樣本數量一致,取K次樣本,對K個抽樣獲得的訓練樣本進行訓練獲得K個子模型,而後對K個子模型結果進行融合,分類採用投票法,迴歸採用均值法。典型算法是隨機森林。下圖即爲Bagging框架示意圖。
因Bagging融合算法各子模型間沒有相互聯繫,因此它是一種並行的融合方法,可同時並行處理K個子模型,這樣大大提高算法執行效率。
Boosting融合框架
Boosting融合在每次訓練模型時更關注上一次的模型錯判的樣例,而且會給這些錯判的樣例更大的權重,這樣作的目的是就是爲了增強對錯判樣本的學習,讓模型經過不斷的迭代,效果愈來愈好。最終將屢次迭代的訓練獲得的弱模型進行加權求和,獲得最終的強模型。由於Boosting框架各模型間是有依賴關係存在的,因此它是一種串行的融合方法。
如上圖所示,使用Boosting融合方法迭代了3輪獲得3個弱分類器,每一輪的訓練樣本權重是不同的,它會根據上一輪的預測結果對錯判的樣本進行加權,目的是爲了在下一輪的訓練學習中更加關注這些錯判的樣本,最後把每一輪訓練獲得的模型加權融合起來。典型算法是Adaboost,GBDT(梯度提高決策權)
Bagging融合更加關注的是獲得一個更穩定的模型,而Boosting融合關注的是獲得一個預測能力更強的模型。