整合學習總結(Ensemble Learning)
Ensemble Learning 是指將多個不同的 Base Model 組合成一個 Ensemble Model 的方法。它可以同時降低最終模型的 Bias 和 Variance,從而在提高分數的同時又降低 Overfitting 的風險。在現在的 Kaggle 比賽中要不用 Ensemble 就拿到獎金幾乎是不可能的。
常見的 Ensemble 方法有這麼幾種:
Bagging:使用訓練資料的不同隨機子集來訓練每個 Base Model,最後進行每個 Base Model 權重相同的 Vote。也即 Random Forest 的原理。
Boosting:迭代地訓練 Base Model,每次根據上一個迭代中預測錯誤的情況修改訓練樣本的權重。也即 Gradient Boosting 的原理。比 Bagging 效果好,但更容易 Overfit。
Blending:用不相交的資料訓練不同的 Base Model,將它們的輸出取(加權)平均。實現簡單,但對訓練資料利用少了。
Stacking:接下來會詳細介紹。
從理論上講,Ensemble 要成功,有兩個要素:
Base Model 之間的相關性要儘可能的小。這就是為什麼非 Tree-based Model 往往表現不是最好但還是要將它們包括在 Ensemble 裡面的原因。Ensemble 的 Diversity 越大,最終 Model 的 Bias 就越低。
Base Model 之間的效能表現不能差距太大。這其實是一個 Trade-off,在實際中很有可能表現相近的 Model 只有寥寥幾個而且它們之間相關性還不低。但是實踐告訴我們即使在這種情況下 Ensemble 還是能大幅提高成績。
Tree Ensemble methods
迴歸樹整合
預測值為各個樹的分數之和
GBM, random forest
Boosting
Boosting:迭代地訓練 Base Model,每次根據上一個迭代中預測錯誤的情況修改訓練樣本的權重。也即 Gradient Boosting 的原理。比 Bagging 效果好,但更容易 Overfit。
這是一種個體學習器之間存在強依賴關係,必須序列生成的序列化方法。
下面是幾個常用的Boosting工具
AdaBoost
boosting組合-GDBT:精益求精
從理論上講,Ensemble 要成功,有兩個要素:
Base Model 之間的相關性要儘可能的小。這就是為什麼非 Tree-based Model 往往表現不是最好但還是要將它們包括在 Ensemble 裡面的原因。Ensemble 的 Diversity 越大,最終 Model 的 Bias 就越低。
Base Model 之間的效能表現不能差距太大。這其實是一個 Trade-off,在實際中很有可能表現相近的 Model 只有寥寥幾個而且它們之間相關性還不低。但是實踐告訴我們即使在這種情況下 Ensemble 還是能大幅提高成績。
Bagging
Bagging:使用訓練資料的不同隨機子集來訓練每個 Base Model,最後進行每個 Base Model 權重相同的 Vote。也即 Random Forest 的原理。
這是一種個體學習器之間不存在強依賴關係,可同時生成的並行化方法
Blending
Blending:用不相交的資料訓練不同的 Base Model,將它們的輸出取(加權)平均。實現簡單,但對訓練資料利用少了。
整合主要思路
平均法
投票法
學習法:Stacking
https://www.toutiao.com/a6722298477562298893/
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29829936/viewspace-2653028/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 整合學習演算法(Ensemble Method)淺析演算法
- Ensemble distillation for robust model fusion in federated learning論文筆記筆記
- Paper Reading: Imbalanced ensemble learning leveraging a novel data-level diversity metric
- 學習總結
- ConstraintLayout 學習總結AI
- BOM學習總結
- tkinter學習總結
- vue學習總結Vue
- HSF學習總結
- ElasticSearch 學習總結Elasticsearch
- Storm學習總結ORM
- vue 學習總結Vue
- lua 學習總結
- Angularjs 學習總結AngularJS
- WebRTC學習總結Web
- GCD 學習總結GC
- CompletableFuture學習總結
- awk 學習總結
- MyBatis 學習總結MyBatis
- Maven學習總結Maven
- Ajax學習總結
- JVM學習總結JVM
- mysqlimport學習總結MySqlImport
- WorkFlow學習總結
- JNI 學習總結
- SVG學習總結SVG
- HTML學習總結HTML
- Mybatis學習總結MyBatis
- JavaWeb學習總結JavaWeb
- KUDU學習總結
- pandas 學習總結
- fetch學習總結
- MYSQL學習總結MySql
- 近期學習總結
- 【TS】學習總結
- SpringCloud 學習總結SpringGCCloud
- Kafka 總結學習Kafka
- Typescript學習總結TypeScript