【机器学习】GBDT vs. XGBoost vs. LightGBM

GBDT vs. XGBoost vs. LightGBM(论文层面)

GBDT vs. XGBoost

  • GBDT无显式正则化
  • GBDT仅使用了目标函数一阶泰勒展开,而XGBoost使用了二阶的泰勒展开值
    • 为什么二阶展开?
      • 一说加快收敛速度
      • 另外有说本身模型训练的学习率shrinkage可以通过二阶导数做一个逼近,而原始的GBDT没有计算这个,所以一般是通过预设的超参数eta人为指定
  • XGBoost加入了列采样
  • XGBoost对缺失值的处理
  • XGBoost通过预排序的方法来实现特征并行,提高模型训练效率
  • XGBoost支持分布式计算

XGBoost vs. LightGBM

  • 树的切分策略不同
    • XGBoostlevel-wiseLightGBMleaf-wise
  • 实现并行的方式不同
    • XGBoost是通过预排序的方式
    • LightGBM则是通过直方图算法
  • LightGBM直接支持类别特征,对类别特征不必进行独热编码处理

sklearn GBDT vs. XGBoost vs. LightGBM(实现层面)

实际在库的实现层面原始论文里的很多区别是不存在的,差异更多在一些工程上的性能优化

sklearn GBDT vs. XGBoost

  • 正则化方式不同
    • sklearn GBDT中仅仅通过学习率来做一个正则化(影响到基学习器的数目),此外gbdt里的early stopping也达到了一个正则化的效果,对应的主要参数是min_impurity_split即控制了判断叶节点是否进一步切分的不纯度的阈值,若超过该阈值则可以进一步切分,否则不行,故而控制了树的深度即控制了基学习器的复杂度
    • XGBoost除了学习率以外还有显示的设置正则化项l1,l2以及对应论文里的叶节点数(对应参数gamma)以及节点权重和(参数min_child_weight)来控制模型复杂度
  • GBDT仅使用了目标函数一阶泰勒展开,而XGBoost使用了二阶的泰勒展开值
  • XGBoost自有一套对缺失值的处理方法
  • early-stopping意义不同
    • sklearn GBDT中控制基学习器进一步切分、生长
    • XGBoost控制基学习器的数目
  • 特征重要性的判断标准
    • sklearn GBDT是根据树的节点特征对应的深度来判断
    • XGBoost则有三种方法(get_score)
      • weight:特征用来作为切分特征的次数
      • gain:使用特征进行切分的平均增益
      • cover:各个树中该特征平均覆盖情况(根据样本?)
  • 树的切分算法
    • XGBoost存在三种切分方法,
      • 原始的贪心算法(每个特征值切分)
      • 近似贪心(分位点切分)(使得对于大量的特征取值尤其是连续变量时XGBoost会比sklearn-gbdt快很多)
      • 直方图算法
  • XGBoost支持level-wiseleaf-wise两种树的生长方式
  • XGBoost支持GPU
  • XGBoost支持多种评价标准、支持多种任务(回归、分类、排序)

XGBoost vs. LightGBM

XGBoost目前已经实现了LightGBM之前不同的一些方法比如直方图算法,两者的区别更多的在与LightGBM优化通信的的一些处理上

    • LightGBM直接支持类别特征,可以不必预先进行独热编码,提高效率(categorical_feature)
    • 优化通信代价
      • 特征并行
      • 数据并行
      • point to point communication–>collective communication
    • 使用多项评价指标同时评价时两者的早停止策略不同,XGBoost是根据评价指标列表中的最后一项来作为停止标准,而LightGBM则受到所有评价指标的影响

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值