1. 程式人生 > >整合學習:Bagging和Boosting比較

整合學習:Bagging和Boosting比較

隨機森林(random forest)和GBDT都是屬於整合學習(ensemble learning)的範疇。整合學習下有兩個重要的策略Bagging和Boosting。

1 Bagging和Boosting含義

Bagging演算法是這樣做的:每個分類器都隨機從原樣本中做有放回的取樣,然後分別在這些取樣後的樣本上訓練分類器,然後再把這些分類器組合起來。簡單的多數投票一般就可以。其代表演算法是隨機森林。

Boosting的意思是這樣,他通過迭代地訓練一系列的分類器每個分類器採用的樣本分佈都和上一輪的學習結果有關。其代表演算法是AdaBoost, GBDT,xgboost。

大多數boost方法會改變資料的概率分佈(改變資料權值),adaboost具體是提高前一輪訓練中被錯分類的資料的權值,降低正確分類資料的權值,使得被錯誤分類的資料在下輪的訓練中更受關注;然後根據不同分佈呼叫弱學習演算法得到一系列弱學習器實現的,再將這些學習器線性組合,具體組合方法是誤差率小的學習器會被增大權值,誤差率大的學習器會被減小權值。gbdt是每輪使用殘差來學校。

2 偏差(擬合程度)方差(泛化能力)

Boosting主要關注降低偏差(用偏差不斷迭代學習),因此Boosting能基於泛化效能相當弱的學習器構建出很強的整合;

Bagging主要關注降低方差(用很多簡單模型,簡單模型穩定,所以低方差),因此它在不剪枝的決策樹、神經網路等學習器上效用更為明顯。

3 為什麼boosting模型要比bagging模型中樹的深度要淺?

對於Bagging演算法來說,由於我們會並行地訓練很多不同的分類器的目的就是降低這個方差(variance) ,因為採用了相互獨立的基分類器多了以後,h的值自然就會靠近.所以對於每個基分類器來說,目標就是如何降低這個偏差(bias),所以我們會採用深度很深甚至不剪枝的決策樹。
對於Boosting來說,每一步我們都會在上一輪的基礎上更加擬合原資料,所以可以保證偏差(bias),所以對於每個基分類器來說,問題就在於如何選擇variance更小的分類器,即更簡單的分類器,所以我們選擇了深度很淺的決策樹。

https://www.jianshu.com/p/005a4e6ac775