Bagging
- 從原始樣本集中有放回抽樣,獲取訓練子集。假設訓練集有N個樣本,每輪從訓練集中有放回的抽取N個訓練樣本。共進行k輪抽取,得到k個訓練子集。(k個訓練集之間是相互獨立的)
- 每個訓練子集訓練一個模型,k個訓練集共得到k個模型。
- 對分類問題:投票;迴歸問題:取均值
Boosting
- 使用全部樣本訓練每個模型;
- 每輪訓練改變樣本的權重,減小在上一輪訓練正確的樣本的權重,增大錯誤樣本的權重
- 下輪訓練目標是擬合上一輪的殘差;
區別
(1)樣本選擇上
Bagging: 原始訓練集上有放回選取,各輪訓練集之間是獨立
Boosting: 每一輪使用全部訓練集,只是每個樣本的權重不同,權值是根據上一輪的分類結果進行調整
(2)樣本權重
Bagging: 權重相等
Boosting:每個樣本的權重不同,權值是根據上一輪的分類結果進行調整
(3)預測函數
Bagging: 所有預測函數的權重相等
Boosting: 每個弱分類器都有相應的權重,分類誤差小的分類器會有更大的權重
(4)弱學習器擬合情況
Bagging:overfitting
Boosting:underfitting
(5)並行計算
Bagging:並行
Boosting:串行,順序生成
對bagging減少variance,而boosting減少bias的理解
Bagging:
Bagging對樣本重採樣,對每一重採樣得到的子樣本集訓練一個模型,最後取平均。由於子樣本集的相似性以及使用的是同種模型,因此各模型有近似相等的bias和variance(事實上,各模型的分佈也近似相同,但不獨立)
bias:
- 由於,所以bagging後的bias和單個子模型的接近,一般來說不能顯著降低bias。
variance:
- 若各子模型獨立,則,variance降爲單個模型的 ,
- 若各子模型完全相同,則,此時不會降低variance
bagging方法得到的各子模型是有一定相關性的,屬於上面兩個極端狀況的中間態,因此可以一定程度降低variance。爲了進一步降低variance,Random forest通過隨機選取變量子集做擬合的方式de-correlated了各子模型(樹),使得variance進一步降低。
Boosting
從優化角度來看,是用forward-stagewise這種貪心法去最小化損失函數。
所謂forward-stagewise,就是在迭代的第n步,求解新的子模型及步長(或者叫組合係數),來最小化,這裏是前步得到的子模型的和。
bias:
- boosting是在sequential地最小化損失函數,其bias自然逐步下降。
variance:
- 由於是採取這種sequential、adaptive的策略,各子模型之間是強相關的,於是子模型之和並不能顯著降低variance。
所以說boosting主要還是靠降低bias來提升預測精度。