理解GBDT
参考: http://wepon.me/files/gbdt.pdf 2017/9/20
OUTLINE
- 泰勒公式
- 最优化方法
- 梯度下降
- 牛顿法
- 参数空间->函数空间
- gradient descent -> gradient boosting
- newton's method -> newton boosting
- gradient boosting tree 算法原理
- newton boosting tree 算法原理 XGboost
- LightGBM
- reference
泰勒公式:局部有效性
SGD就是利用泰勒公式一阶形式,牛顿法是利用泰勒公式二阶形式
- GBDT在函数空间中利用梯度下降法进行优化
- XGBoost在函数空间中用牛顿法进行优化
实际上GBDT泛指所有梯度提升树算法,包括XGBoost,它也是GBDT的 一种变种,这里为了区分它们,GBDT特指“Greedy Function Approximation:A Gradient Boosting Machine”里提出的算法,它只用了 一阶导数信息。
总结:
- Boosting算法是一种加法模型(additive training)
- 基分类器 f常采用回归树[Friedman1999]和逻辑回归
[Friedman 2000]。下文以回归树展开介绍。树模型有以下优缺点:
优点 - 可解释性强
- 可处理混合类型特征
- 具体伸缩不变性(不用归一化特征) • 有特征组合的作用
- 可自然地处理缺失值
- 对异常点鲁棒
- 有特征选择作用
- 可扩展性强,容易并行
缺点 - 缺乏平滑性(回归预测时输出值只能 输出有限的若干种数值)
- 不适合处理高维稀疏数据
GBDT算法原理
Newton Boosting Tree 算法原理:详解XGBoost
- 模型函数形式
-目标函数- 正则项
- 误差函数的二阶泰勒展开
- 回归树的学习策略
- 打分函数
- 树节点分裂方法
- 缺失值的处理
- 其它特性
相比原始的GBDT,XGBoost的目标函数多了正则项,使得学习出来的 模型更加不容易过拟合。
XGBoost对T和w进行了惩罚。(叶子节点的个数,和叶子节点的分数)
对叶子节点的个数进行惩罚:相当于在训练过程中做了剪枝。
XGBoost就看到了这里,后面太复杂实在不知道说的是啥