1. 程式人生 > >十大經典預測演算法六---整合學習(模型融合演算法)

十大經典預測演算法六---整合學習(模型融合演算法)

模型融合演算法概念

  它不是具體的指某一個演算法,而是一種把多個弱模型融合合併在一起變成一個強模型的思想

用模型融合演算法的原因

  1、單個模型容易過擬合,多個模型融合可以提高範化能力

  2、單個模型預測能力不高,多個模型往往能提高預測能力

  3、對於資料集過大或過小,可以分別進行劃分和有放回的操作,產生不同的資料子集,然後通過資料子集訓練不同的分類模型,最終合併成一個大的分類器

  4、對於多個異構的特徵集的時候,很難進行融合,可以考慮每個資料集構建一個分類模型,然後將多個模型融合

  5、模型融合演算法成功的關鍵在於能保證弱分類器(弱模型)的多樣性,融合不穩定的學習演算法能得到更明顯的效能提升

融合模型示例

  一個天氣預報的示例,可以看到多個模型融合後可以顯著提升預測效果:5個子模型平均都會有兩個到三個的錯誤,但是使用少數服從多數的投票法融合之後,最終的預測結果100%正確

模型融合基礎演算法:

  投票法(Voting):如果是分類模型,每個模型都會給出一個類別預測結果,通過投票的方式,按照少數服從多數的原則融合得到一個新的預測結果。

  均值法(Averaging):如果是迴歸模型,每個模型給出的預測結果都是數值型的,這時候我們可以通過求所有子模型的預測結果的均值作為最終的融合結果

Bagging融合框架:

   Bagging融合的原理是採用有放回的抽樣,即每次從訓練樣本中隨機取出一個樣本,而且每次抽取的樣本數量與總體的樣本數量一致,取K次樣本,對K個抽樣得到的訓練樣本進行訓練得到K個子模型,然後對K個子模型結果進行融合,分類採用投票法,迴歸採用均值法。典型演算法是隨機森林。下圖即為Bagging框架示意圖。

   

因Bagging融合演算法各子模型間沒有相互聯絡,所以它是一種並行的融合方法,可同時並行處理K個子模型,這樣大大提升演算法執行效率。

Boosting融合框架

  Boosting融合在每次訓練模型時更關注上一次的模型錯判的樣例,並且會給這些錯判的樣例更大的權重,這樣做的目的是就是為了加強對錯判樣本的學習,讓模型通過不斷的迭代,效果越來越好。最終將多次迭代的訓練得到的弱模型進行加權求和,得到最終的強模型。因為Boosting框架各模型間是有依賴關係存在的,所以它是一種序列的融合方法。

如上圖所示,使用Boosting融合方法迭代了3輪得到3個弱分類器,每一輪的訓練樣本權重是不一樣的,它會根據上一輪的預測結果對錯判的樣本進行加權,目的是為了在下一輪的訓練學習中更加關注這些錯判的樣本,最後把每一輪訓練得到的模型加權融合起來。典型演算法是Adaboost,GBDT(梯度提升決策權)

 Bagging融合更加關注的是得到一個更穩定的模型,而Boosting融合關注的是得到一個預測能力更強的模型。