模型融合方法之Bagging與Boosting

Bagging

  1. 從原始樣本集中有放回抽樣,獲取訓練子集。假設訓練集有N個樣本,每輪從訓練集中有放回的抽取N個訓練樣本。共進行k輪抽取,得到k個訓練子集。(k個訓練集之間是相互獨立的)
  2. 每個訓練子集訓練一個模型,k個訓練集共得到k個模型。
  3. 對分類問題:投票;迴歸問題:取均值

Boosting

  1. 使用全部樣本訓練每個模型
  2. 每輪訓練改變樣本的權重,減小在上一輪訓練正確的樣本的權重,增大錯誤樣本的權重
  3. 下輪訓練目標是擬合上一輪的殘差

區別

(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:

  • 由於E[XIn]=E[Xi]E[\frac{\sum{X_I}}{n}] = E[X_i],所以bagging後的bias和單個子模型的接近,一般來說不能顯著降低bias。

variance:

  • 若各子模型獨立,則Var(Xin)=Var(Xi)nVar(\frac{\sum{X_i}}{n}) = \frac{Var(\sum{X_i})}{n},variance降爲單個模型的1n\frac{1}{n}
  • 若各子模型完全相同,則Var(Xin)=Var(Xi)Var(\frac{\sum X_i}{n})=Var(X_i),此時不會降低variance
    bagging方法得到的各子模型是有一定相關性的,屬於上面兩個極端狀況的中間態,因此可以一定程度降低variance。爲了進一步降低variance,Random forest通過隨機選取變量子集做擬合的方式de-correlated了各子模型(樹),使得variance進一步降低。

Boosting
        從優化角度來看,是用forward-stagewise這種貪心法去最小化損失函數L(y,iaifi(x))L(y, \sum_i a_i f_i(x))
        所謂forward-stagewise,就是在迭代的第n步,求解新的子模型fn(x)f_n(x)及步長ana_n(或者叫組合係數),來最小化L(y,fn1(x)+anfn(x))L(y,f_{n-1}(x)+a_nf_n(x)),這裏fn1(x)f_{n-1}(x)是前n1n-1步得到的子模型的和。
bias:

  • boosting是在sequential地最小化損失函數,其bias自然逐步下降

variance:

  • 由於是採取這種sequential、adaptive的策略,各子模型之間是強相關的,於是子模型之和並不能顯著降低variance

所以說boosting主要還是靠降低bias來提升預測精度。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章