Bagging直接基於自助採樣法bootstrap sampling。
自助採樣法的步驟是:給定包含 N個樣本的數據集:
先隨機取出一個樣本放入採樣集中,再把該樣本放回原始數據集。
這樣經過 N 次隨機採樣操作,得到包含 N個樣本的採樣集。
初始訓練集中有的樣本在採樣集中多次出現,有的則從未出現。一個樣本始終不在採樣集中出現的概率是 。
根據
因此初始訓練集中約有 63.2% 的樣本出現在了採樣集中。
自助採樣法給Bagging算法帶來了額外的優點:由於每個基學習器只用初始訓練集中約 63.2% 的樣本來訓練,剩下的約 36.8% 的樣本可用作驗證集來對泛化性能進行包外估計。
Bagging的基本流程:
經過 輪自助採樣,可以得到 個包含 個訓練樣本的採樣集。
然後基於每個採樣集訓練出一個基學習器。
最後將這 個基學習器進行組合,得到集成模型。
在使用 Bagging學習器進行預測時:
分類任務採取簡單投票法,取每個基學習器的預測類別的衆數。
迴歸任務使用簡單平均法,取每個基學習器的預測值的平均。
從偏差-方差分解的角度來看:
Bagging主要關注降低方差,它能平滑強學習器的方差。
因此它在非剪枝決策樹、神經網絡等容易受到樣本擾動的學習器上效果更爲明顯。
Boosting 主要關注降低偏差,它能將一些弱學習器提升爲強學習器。
因此它在SVM 、knn 等不容易受到樣本擾動的學習器上效果更爲明顯