理解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就看到了这里,后面太复杂实在不知道说的是啥

posted @ 2017-12-16 13:47  一条图图犬  阅读(1164)  评论(0编辑  收藏  举报