模型融合算法概念
它不是具體的指某一個算法,而是一種把多個弱模型融合合並在一起變成一個強模型的思想
用模型融合算法的原因
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融合關注的是得到一個預測能力更強的模型。