机器学习——梯度提升决策树(GBDT)

相关文章链接:

        机器学习——人工神经网络(NN)

        机器学习——卷积神经网络(CNN)

        机器学习——循环神经网络(RNN)

        机器学习——长短期记忆(LSTM)

        机器学习——决策树(decision tree)

        机器学习——随机森林(Random forest)

        机器学习——XGboost模型

一、提升树Boosting Decision Tree

        提升树(Boosting Decision Tree)是以CART决策树为基学习器的集成学习方法。

GBDT提升树

        提升树实际上就是加法模型和前向分布算法,表示为:

        在前向分布算法第m步,给定当前的模型fm-1(x),求解:

        得到第m棵决策树   。不同问题的提升树的区别在于损失函数的不同,如分类用指数损失函数,回归用平方误差损失。

        当提升树采用平方损失函数时,第m次迭代表示为:

  

        称r为残差,所以第m棵决策树  是对该残差的拟合。

        要注意的是提升树算法中的基学习器CART是回归树,

二、GBDT概念

        GBDT 的全称是 Gradient Boosting Decision Tree,梯度提升决策树,理解为梯度提升 + 决策树GB代表的是Gradient Boosting,意为梯度提升,梯度是一种数学概念,一个函数的梯度方向是函数上升最快的方向,相反的,负梯度方向是函数下降最快的方向。GBDT中所有的树都是回归树,而不是分类树,也就是说DT独指Regression Decision Tree。

        GBDT是通过采用加法模型(即基函数的线性组合),以及不断减小训练过程产生的残差来达到将数据分类或者回归的算法。

        GBDT同样由许多决策树组成,但它于随机森林有许多不同。其中之一是GBDT中的树都是回归树。决策树分为两大类,分类树和回归树。分类树用于分类标签值,如将苹果单纯的分为好与坏的是分类树;回归树用于预测实数值,如能为苹果的好坏程度打个分就是回归树。另一个不同是每棵树都是建立在前一棵树的基础上实现的

        Friedman提出了利用最速下降的近似方法,利用利用损失函数的负梯度在当前模型的值,作为回归问题中提升树算法的残差的近似值,拟合一个回归树。

        在GBDT中使用负梯度作为残差进行拟合。

GBDT梯度提升流程

        GBDT与提升树的区别在于是残差使用梯度代替,而且每个基学习器有对应的参数权重

三、 GBDT的流程

GBDT的训练过程

        GBDT通过多轮迭代,每轮迭代产生一个弱分类器,每个分类器在上一轮分类器的残差基础上进行训练。对弱分类器的要求一般是足够简单,并且是低方差和高偏差的。因为训练的过程是通过降低偏差来不断提高最终分类器的精度,(此处是可以证明的)。

        弱分类器一般会选择为CART TREE(也就是分类回归树)。由于上述高偏差和简单的要求 每个分类回归树的深度不会很深。最终的总分类器 是将每轮训练得到的弱分类器加权求和得到的(也就是加法模型)。

步骤:

  • 针对每个类别都先训练一个回归树。
  • 对每个类别分别计算残差。
  • 重复直到迭代M轮,就得到了最后的模型。预测的时候只要找出概率最高的即为对应的类别。

四、GBDT工作过程实例

        如年龄预测,假设训练集只有4个人A、B、C、D,他们的年龄分别是14,16,24,26.其中A,B分别是高一和高三学生;C,D分别是应届毕业生和工作两年的员工,若用一颗传统的回归决策树来训练,会得到如下图结果:

        如果使用GBDT来训练,由于数据太少,限定叶子节点最多有两个,并且限定只学两棵树,会得到下图结果:

         两图最终效果相同,为何还需要GBDT呢?答案是过拟合。过拟合是指为了让训练集精度更高,学到了很多“仅在训练集上成立的规律”导致换一个数据集当前规律就不适用了。只要允许一棵树的叶子节点足够多,训练集总是能训练到100%准确率的。在训练精度和实际精度之间,后者才是更重要的。

五、GBDT的优缺点

优点

  1. 相对少的调参时间情况下可以得到较高的准确率
  2. 可灵活处理各种类型数据包括连续值和离散值使用范围广
  3. 可使用一些健壮的损失函数对异常值的鲁棒性较强

缺点

        弱学习器之间存在依赖关系,难以并行训练数据

  • 12
    点赞
  • 61
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

白天数糖晚上数羊

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

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

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

打赏作者

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

抵扣说明:

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

余额充值