【ML】GBDT、Xgboost和LightGBM的模型理解

一、问题背景

  在机器学习的集成学习中,GBDT、Xgboost和LightGBM是非常重要的模型,而且在面试过程中也会常常问到其中的一些关键点,这里将做一些学习的记录。
下边将详细讲解AdaBoost、RF、GBDT、XGboost、lightGBM等模型。

二、集成学习

百面机器学习-算法工程师带你去面试.pdf

1.集成学习分三类:
  • bagging:是Bootstrap aggregating的意思,各分类器之间无强依赖,可以并行。
  • boosting:串行的方式训练基分类器,各分类器之间有依赖。每次训练时,对前一层基分类器分错的样本给与更高的权重。
  • stacking:bagging和boosting通常都是使用同一种基学习器(base learner),因此我们一般称之为同质集成方法。Stacking通常都是基于多个不同的基学习器做的集成,因此我们称之为异质集成方法。
2.【方差】和【偏差】的理解

偏差:是指由有所采样得到的大小为m的训练数据集,训练出的所有模型的输出的平均值和真实模型输出之间的偏差。
方差:是指有所有采样得到的大小为m的训练数据集,训练出的所有模型的输出的方差。

3.boosting和bagging的方法目标

base learner的错误是方差和偏差的整体表现之和;boosting方法主要是逐步的聚焦分类器分错的样本上,为了减少集成分类器的偏差;bagging采用的是分而治之的策略,对于样本多次采样分别训练多个模型,目标是减少方差。

4.决策树作为常用分类器的原因

不同决策树理解 – Decision tree

  • 可以方便的将样本权重引入到训练的过程中,就不需要使用过采样或欠采样的方法来调整样本比例。
  • 决策树的表达能力和泛化能力可以通过调节树的深度来折中。
  • 数据样本扰动对决策树影响较大,因此不同子样本集生成的基分类器随机性比较大,因此这样不稳定的学习器更适合作为base learner。
5.RF

RF-随机深林,是以决策树为base learner构建的Bagging集成的基础上,进一步在决策树的训练过程中引入随机属性选择。具体来说就是在传统的决策树中选择划分属性的时候是在当前节点的属性集合(假设d个属性)中选择最优的属性,而在RF中是对基决策树中的每个节点随机选择一个包含k个属性的集合,然后从这个子集中进行最优属性划分。 k = d k=d k=d则是等同于传统决策树, k = 1 k=1 k=1则是随机选择一个属性划分,一般选择 k = l o g 2 d k=log_2d k=log2d
  本质上来说,RF是对决策树的改进,将多个决策树合并在一起。每棵树的构建事依赖于独立抽样的样本,每棵树具有相同的分布,分类误差取决于每一棵树的分类能力和他们之间的相关性。

优缺点:

  • 优点:1、训练可以高度并行化,大样本训练优势比较大;2、由于是随机选择决策树节点划分特征,这样在样本特征维度高的时候仍能训练出高效模型。3、采用了随机采样,因此训练模型方差较小,泛化能力较强。4、模型对部分的缺失特征不敏感;5、相较于Boosting系列模型RF实现相对简单。
  • 缺点:1、噪声大的样本集上,RF容易陷入过拟合;2、取值划分比较多的特征容易对RF的决策产生更大的影响,从而影响最终的模型拟合效果。

py代码实现:随机森林 RF 算法原理及实践

6.Adaboost

AdaBoost是英文"Adaptive Boosting"(自适应增强)的缩写,他的自适应体现在于:前一个base learner被错误分类的样本的权值会被增大,正确分类的权值会减小,并再次用来训练下一个基分类器。同时在每轮的迭代过程中,加入一个新的弱分类器,知道达到我们所预定的错误率或者是预先指定的最大迭代次数。
整个过程可以简化成三个步骤:

  • 首先是初始化训练数据的权重分布,假设有N个训练样本,则最开始训练的时候每个样本的权重都是 1 N \frac{1}{N} N1
  • 然后在训练每个弱分类器 h i h_i hi,具体是某些训练样本在这个分类器中被分类正确后,在构造下一个训练集的时候其权重会减小,反之权重增大,然后将权重更新的新训练集用于下一个分类器训练。
  • 在模型融合过程中,各个弱分类器组合成一个强分类器,根据错误率对基分类器进行加权求和,错误率低的分类器拥有更大的“话语权”。这里合并base learner方法主要有两种,votingstacking,voting就是采用投票的方法获得选票最多的结果作为最后的结果;stacking是将所有的基分类器的结果采用算法进行融合,比如常见的将各个基分类器的输出作为特征输到LR模型中,进行最后的结果预测。

优缺点:

  • 优点:1、Adaboost提供了一种框架,在框架内可以使用各类方法构造子分类器,可以使用简单的弱分类器组合,不同对特征进行筛选,也不存在过拟合现象。2、不需要弱分类器的先验知识,最后得到的强分类器分类精度依赖于所有的弱分类器,能显著提高学习精度。3、“三个臭皮匠赛过诸葛亮” —集成学习的强大能力。
  • 缺点:1、训练过程中难以分类的样本的权值是成指数增长,使得训练会过多的偏向于这类困难样本,导致adaboost算法容易受噪声干扰。2、依赖于弱分类器,而弱分类器的训练时间往往比较长。
    在这里插入图片描述
7.GBDT
  • 基本的树:CART
  • 拟合函数:负梯度
  • 损失函数:
    • 回归:直接连续值计算负梯度
      • 均方差、绝对损失等等
    • 分类:指数(退化到Adaboost)、对数
  • 正则化:
    • 步长:
    • 自采样
    • 正则化剪枝
8.XGBoost
9.LightGBM
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

郝同学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值