0 - 思想
如下圖所示,Bagging(Bootstrap Aggregating)的基本思想是,從訓練數據集中有返回的抽象m次形成m個子數據集(bootstrapping),對於每一個子數據集訓練一個基礎分類器,最后將它們的結果綜合起來獲得最終輸出。
1 - 特點
Bagging需要不同的/獨立的(diverse/independent)基礎模型,因此太過穩定的模型不適合這種集成方法,例如:
- KNN是穩定的
- 決策樹是不穩定的,特別是未剪枝的決策樹(因為對於每一份數據的擬合可能很不一樣)
此外,集成模型的性能在基礎模型的數量達到一定規模之后,將收斂。
2 - 隨機森林(Random Forest)
一類最經典的Bagging集成模型是隨機森林(Random Forest),其中通過如下兩個點來確保隨機性(即確保不同基礎模型之間的差異性):
- 每一棵樹都使用一個子數據集進行訓練(a bootstrap sample of data)
- 每一個結點的最優分割加入了隨機化,具體有如下三種方法
- 從全部的$m$個屬性中隨機選取$d$個屬性,計算它們的信息增益再選擇最優的分割;
- 計算$L$個隨機屬性的線性組合,線性組合的權重從$[-1,1]$中隨機采樣(這一種方法不太理解);
- 計算全部$m$個屬性的信息增益,而后選擇最高的$d$個屬性,再從中隨機選取一個屬性進行分割。
3 - 總結
- Bagging的工作原理是減少預測方差 簡單分析預測結果,可以知道Bagging有預測錯誤概率的上界
- 假設對於基礎模型$i$,其預測錯誤的概率為$P(h_i(x)\neq f(x))=\epsilon $
- 並且取預測最多的類別最為最終結果,表示為$H(x)=sign\left(\sum_{i=1}^T h_i(x) \right )$
- 那么最終預測錯誤的概率可以表示為(利用Hoeffding inequality)$P(H(x)\neq f(x))=\sum_{k=0}^{\left \lfloor T/2 \right \rfloor}\binom{T}{k}(1-\epsilon)^k\epsilon^{T-k}\leq exp\left(-\frac{1}{2}T(2\epsilon-1)^2 \right )$
- Bagging很適合並行處理