XGBoost是端到端的迭代决策树算法框架,被普遍用于各种机器学习应用中,具备很好的可扩展性git
每棵树都是回归树(CART树)github
Xgboost相比传统GBDT,作了以下优化:算法
1. 损失函数增长了正则项,正则项里包含了树的叶子节点个数、每一个叶子节点上输出的score的L2模的平方和, 提升了树的泛化能力缓存
2. 对于大数据,提供了块缓存结构框架
3. 对代价函数进行了二阶泰勒展开,使用二阶导优化目标损失函数机器学习
4. 对于稀疏或者缺失特征数据, 有默认分支,这样避免计算分割点函数
为了防止过拟合,采用两种方法:学习
1. 加入Shrinkage思想,至关于给每棵树加入权重大数据
2. 列采样,即特征采样,相似于随机森林优化
源码: https://github.com/dmlc/xgboost
参考文献:
XGBoost: A Scalable Tree Boosting System