集成学习Ensemble Learning
集成学习是一种思想而不是一种算法,通过合并多个弱学习器(决策树、神经网络、朴素贝叶斯等)来提升机器学习的性能。
目前集成学习方法大致分为两大类:
(1)个体学习器存在强依赖,必须串行生成 (Boosting提升方法)
(2)个体学习器不存在强依赖,可同时生成的并行化方法 (Bagging和随机森林)
boosting
- GBDT(Gradient Boosting Decision Tree),GBDT是GB和DT的结合
- XGBoost(eXtreme Gradient Boosting),在2014年3月由陈天奇提出,xgboost是由多个CART决策树集成,是二叉树。XGBoost本质上还是一个GBDT,但是力争把速度和效率发挥到极致
- LightGBM(Light Gradient Boosting Machine),2017年1月微软发布首个稳定版
- CatBoost,2017年4月由俄罗斯顶尖技术公司Yandex开源
catboost模型回溯
catboost.CatBoostClassifier支持save_model保存为Python、C++等多种形式:
# python
cat_clf.save_model('catboost_model_file.py', format="python", export_parameters=None)
# C++
cat_clf.save_model('catboost_model_file.cpp', format="cpp", export_parameters=None)
可以发现catboost本质是二叉树,输出结果为leaf_value,在what is mean leaf_value指出通过sigmoid处理后就是最终结果。
参考资料
[1] 李航 《统计学习方法》第8章 提升方法
[2] 周志华 《机器学习》 第8章 集成学习
[3] 从结构到性能,一文概述XGBoost、Light GBM和CatBoost的同与不同: https://cloud.tencent.com/developer/news/149453
[4] 决策树模型,XGBoost,LightGBM和CatBoost模型可视化: https://blog.csdn.net/l_xzmy/article/details/81532281