从CART到GBDT到LightGBM

参考 https://zhuanlan.zhihu.com/p/128472955

cart树

空间分割思想的由来

一些学者采用类似随机投影的思路,将自变量的取值空间切分为若干个碎块,并假设这个空间碎块内的所有样本的因变量取值接近(甚至相同)——在这种思想的指导下,出现了一种非常经典的回归模型,即CART回归树。

cart决策树的构建思想

决策树认为,物以类聚、人以群分,在特征空间里相近的样本,那就是一类。如果为每个“类”分配的空间范围比较小,那么,同一个类内的样本差异会非常小,以至于看起来一样。换句话说,如果我们可以将特征空间切分为较小的碎块,然后为每一个碎块内的样本配置一个统一的因变量取值,就有机会做出误差较小的预测。

cart决策树需要解决的两个问题

  1. 如何分割特征空间
  2. 如何为不同空间设置因变量取值
  1. 针对离散值的分类决策树:如ID3 C4.5
  2. 针对连续值的分类决策树: CART树:
    在构建CART树的时候,我们遍历所有特征的所有取值 ——以这个特征的这个取值为分割依据、得到两组样本 和 ,然后计算对这两组样本的预测误差。遍历完毕后,选取预测误差最小的那一个特征的取值 。

这里有一个问题:“预测误差”哪来的?基于预测值和真实值算出来的。“预测值”哪儿来的?需要一个计算方法。为了使MSE最小,一般以一组样本的输出值的均值作为预测值

CART分类树和CART回归树的思想和逻辑结构是相同的,二者的主要区别是:样本分组时,CART分类树评价(特征,取值)的质量指标为gini系数,CART回归树为MSE。

GBDT

参考https://zhuanlan.zhihu.com/p/144855223

主要思想

用第K个CART拟合前k-1个CART留下的残差,从而不断的缩小整个模型的误差

  • 前k个CART的预测值:
    图片说明
  • 最优化目标函数
    图片说明
  • 【带一点泛函】将目标函数对另一个函数(即前k-1个CART组成的模型)求偏导,得函数更新公式:
    图片说明
  • 采用残差平方和作为目标函数:
    图片说明 (3-3)
  • 由(3-1)(3-2)(3-3):
    图片说明

这就解释了为什么GBDT是在拟合残差
GBDT里,我们需要将目标函数对另一个函数(即前k-1个CART组成的模型)求偏导,进而基于梯度得到一棵CART(即第k课CART)的学习目标——这是理解GBDT的主要难关

LightGBM

特性

  • leafwise生长策略:每次只选择增益最大的节点进行分裂。
    对比的是level wise,level wise是分裂时将决策树中当前层的所有节点都进行分裂,其中可能有部分增益其实并不大。

    调参方法

    参考
    https://www.cnblogs.com/bjwu/p/9307344.html
    https://blog.csdn.net/u012735708/article/details/83749703

  • nums_leaves参数:
    num_leaves. 这是控制树模型复杂性的重要参数。理论上,我们可以通过设定num_leaves = 2^(max_depth) 去转变成为depth-wise tree。但这样容易过拟合,因为当这两个参数相等时, leaf-wise tree的深度要远超depth-wise tree。因此在调参时,往往会把 num_leaves的值设置得小于2^(max_depth)。例如当max_depth=6时depth-wise tree可以有个好的准确率,但如果把 num_leaves 设成 127 会导致过拟合,要是把这个参数设置成 70或 80 却有可能获得比depth-wise tree有更好的准确率。

GBDT Xgboost Lightgbm之间的比较

参考https://zhuanlan.zhihu.com/p/148050748

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务