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