本文結構:
- 基本流程
- 有放回抽樣的好處
- Bagging 特點
- sklearn 中 Bagging 使用
- Bagging 和 Boosting 的區別
bagging:bootstrap aggregating 的縮寫。
是一種并行式集成學習方法,可用于二分類,多分類,回歸等任務。
基本流程:
- 對一個包含 m 個樣本的數據集,有放回地進行 m 次隨機采樣,這樣得到具有 m 個樣本的采樣集。
- 取 T 個這樣的采樣集。
- 每個采樣集訓練一個基學習器。
- 結合:分類任務,使用簡單投票法。回歸任務,使用簡單平均法。
有放回抽樣的好處
這種有放回抽樣會有 63.2% 的樣本出現在采樣集中,而剩下的 36.8% 樣本可以作為驗證集對模型的泛化性能進行包外估計。
當基學習器是決策樹時,可以用包外樣本來輔助剪枝,
還可以用于估計決策樹中各結點的后驗概率來輔助對零訓練樣本結點的處理。
基學習器是神經網絡時,用包外樣本來輔助早期停止來減小過擬合。
Bagging 特點
Bagging 主要關注降低方差,是要降低過擬合,而不會降低偏差,因此最好不要用高偏差的模型。
在不剪枝決策樹,神經網絡等易受樣本擾動的學習器上效用更為明顯。例如當基學習器是決策樹時,Bagging 是并行的生成多個決策樹,此時可以不做剪枝,這樣每個都是強學習器,就會有過擬合的問題,但是多個學習器組合在一起,可以降低過擬合。
scikit-learn 中 Bagging 使用例子:
from sklearn.ensemble import BaggingClassifier
from sklearn.neighbors import KNeighborsClassifier
model = BaggingClassifier(KNeighborsClassifier(), max_samples=0.5, max_features=0.5)
Bagging 和 Boosting 的區別
- 樣本選擇:Bagging 的訓練集是在原始集中有放回選取的,各輪訓練集之間是獨立的,每個樣例的權重相等;Boosting 的訓練集不變,只是每個樣例在分類器中的權重發生變化,錯誤的樣本會得到更大的重視;
- Bagging 的預測函數沒有權重之分;Boosting 的預測函數是有權重之分,效果好的函數權重大;
- Bagging 的各個預測函數并行產生,容易 map-reduce ,Boosting 的預測是順序產生,后一個模型參數需要前一輪模型的結果。
學習資料:
《機器學習》
http://f.dataguru.cn/thread-301569-1-1.html
http://scikit-learn.org/stable/modules/ensemble.html#bagging
http://www.cnblogs.com/liuwu265/p/4690486.html
http://www.lxweimin.com/p/708dff71df3a
推薦閱讀 歷史技術博文鏈接匯總
http://www.lxweimin.com/p/28f02bb59fe5
也許可以找到你想要的:
[入門問題][TensorFlow][深度學習][強化學習][神經網絡][機器學習][自然語言處理][聊天機器人]