gdbt常见考点

1、gbdt、xgboost,LightGBM区别

1.1、gbdt与xgboost的区别

分类器:gbdt分类器为cart树,xgboost支持线性分类器,相当于带了l1,l2正则的逻辑斯蒂回归分类器

优化:优化时,gbdt仅考虑一阶泰勒展开;xgboost考虑二阶泰勒展开

代价函数:gbdt上一次的分类结果的平方误差和;xgboost引入了l2正则项,限制树的规模

 缩减eta:xgboost在进行完一次迭代后会将叶子结点乘以缩减权重,让后面的树有更大的学习空间,一般将eta设置的相对较小,将迭代次数设置的较大。

是否支持列抽样:xgboost借鉴随机森林的方法进行列抽样(从总共m维特征中随机抽取k维特征,有放回的采样,生成n棵树,通过n棵树进行判断),减少了过拟合并减少了计算

是否支持并行:xgboost在特征寻找最优划分点进行并行计算,首先将特征进行排序,排序后存储在block中。xgboost本身的迭代是基于上一次的优化,拟合上一次的残差。

xgboost能够处理找到缺失值的方向:随机森林RF处理缺失值时,数值类型会将缺失值通过中位数替代,描述类型会将缺失值通过出现次数最多的替代。xgboost训练时计算缺失值时,会分别划分到左右子树中进行计算,选择最优的那个;在预测时,默认划分到右子树。

1.2、lightgbm

LightGBM是XGBoost的改进版,相比于前者,它添加了很多新的方法来改进模型,包括:并行方案、基于梯度的单边检测、排他性特征捆绑等。

LightGBM的特征并行方案

LightGBM并没有垂直的切分数据集,而是每个worker都有全量的训练数据,因此最优的特征分裂结果不需要传输到其他worker中,只需要将最优特征以及分裂点告诉其他worker,worker随后本地自己进行处理。每个worker利用全量数据基于局部特征选择出局部最优划分的特征,然后worker传输最优划分特征

LightGBM的数据并行方案

1)LightGBM算法使用Reduce Scatter并行算子归并来自不同worker的不同特征子集的直方图,然后在局部归并的直方图中找到最优局部分裂信息,最终同步找到最优的分裂信息。
2)除此之外,LightGBM使用直方图减法加快训练速度。我们只需要对其中一个子节点进行数据传输,另一个子节点可以通过histogram subtraction得到。
3)LightGBM可以将传输代价降低为O(0.5 * #feature * #bin)。

LightGBM的投票并行方案

1、每个vote选出分裂topk个分裂特征

2、将topk个分裂特征汇总,选出全局top分裂特征

基于剃度单边检测

梯度误差越小,说明这个样本已经学的很好了。

GOSS首先根据梯度绝对值排序,再选出a * 100%大梯度实例数据。之后在余下的数据随机采样b * 100%。经过这个过程,当计算信息增益时,GOSS使用小梯度放大了采样数据1-a/b。这样做的好处在于,我们放更多的注意力在训练实例上,而没有改变原始数据的分布。

排他性特征捆绑

高维度特征具有稀疏性,这样可以设计一个减少有效特征数量的无损的方法,特别是在稀疏特征中,许多特征是互斥的,出现大量0,例如one-hot。我们可以捆绑互斥的特征。

1.3、xgboost与lightgbm的差异

1、特征划分维度:xgboost依赖预排序来提高计算效率,每个特征只需计算一次信息增益;lightgbm依靠直方图来计算信息增益,只用计算k个特征

2、限制决策树构建维度:xgboost是level_wise的决策树,通过限制层数来构建决策树;lightgbm是leaf_wise的决策树,通过控制每次的叶子结点来构建决策树

3、支持类别特征、不需要独热编码

4、lightgbm采用了数据并行、特征并行、投票并行的方式进行计算加速

5、采用梯度单边检测采样,保证了数据的分布

6、排他性特征捆绑减少了特征的量

2、xgboost为什么快?

支持列抽样、支持并行

3、xgboost如何支持并行?

特征维度的并行,先将特征划分排序,将计算好的增益存储在一个block中,并行计算特征的分裂

4、一句话描述gbdt

gbdt是梯度提升树,基于cart分类树进行回归和分类,每次迭代都是在拟合上一次的误差。

机器学习算法中 GBDT 和 XGBOOST 的区别有哪些? - 知乎

怎么理解决策树、xgboost能处理缺失值?而有的模型(svm)对缺失值比较敏感呢? - 知乎
GBDT、XGBoost、LightGBM的区别和联系 - 简书
 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值