当前位置:网站首页 > 职业技能提升 > 正文

梯度提升决策树原理(梯度提升树算法)



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

基于梯度下降的决策树算法 梯度提升决策树简介_基于梯度下降的决策树算法

GBDT提升树

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

基于梯度下降的决策树算法 梯度提升决策树简介_决策树_02

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

基于梯度下降的决策树算法 梯度提升决策树简介_基于梯度下降的决策树算法_03

基于梯度下降的决策树算法 梯度提升决策树简介_人工智能_04

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

基于梯度下降的决策树算法 梯度提升决策树简介_基于梯度下降的决策树算法_05

基于梯度下降的决策树算法 梯度提升决策树简介_人工智能_04

基于梯度下降的决策树算法 梯度提升决策树简介_基于梯度下降的决策树算法_07

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

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

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

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

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

基于梯度下降的决策树算法 梯度提升决策树简介_决策树_08

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

基于梯度下降的决策树算法 梯度提升决策树简介_人工智能_09

GBDT梯度提升流程

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

基于梯度下降的决策树算法 梯度提升决策树简介_机器学习_10

GBDT的训练过程

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

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

步骤:

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

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

基于梯度下降的决策树算法 梯度提升决策树简介_基于梯度下降的决策树算法_11

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

基于梯度下降的决策树算法 梯度提升决策树简介_人工智能_12

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

优点

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

缺点

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

到此这篇梯度提升决策树原理(梯度提升树算法)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • 梯度提升树名词解释(梯度提升树名词解释是什么)2025-01-04 12:18:10
  • 梯度提升树模型(梯度提升树模型和神经网络哪个更适合心血管疾病预测)2025-01-04 12:18:10
  • 梯度提升和梯度下降(梯度提升和梯度下降的区别)2025-01-04 12:18:10
  • 梯度提升算法(梯度提升算法有哪些)2025-01-04 12:18:10
  • 梯度提升树和随机森林(梯度提升树和随机森林哪个好)2025-01-04 12:18:10
  • 梯度提升树原理(梯度提升和梯度下降的区别)2025-01-04 12:18:10
  • 美国第十次加息 正面临史上最严重的债务危机 经济形势堪忧2025-01-04 12:18:10
  • 梯度提升树原理(梯度提升算法原理)2025-01-04 12:18:10
  • 梯度提升树优缺点(梯度提升决策树简介)2025-01-04 12:18:10
  • 梯度提升决策树原理(梯度提升决策树简介)2025-01-04 12:18:10
  • 全屏图片