首页 > 其他分享 >GBDT

GBDT

时间:2023-02-02 23:03:52浏览次数:40  
标签:Loss Gradient 残差 GBDT 版本 Boost


GBDT的两个不同版本(重要)

残差版本把GBDT说成一个残差迭代树,认为每一棵回归树都在学习前N-1棵树的残差。
Gradient版本把GBDT说成一个梯度迭代树,使用梯度下降法求解,认为每一棵回归树在学习前N-1棵树的梯度下降值。

GBDT中的Tree是回归树,不是分类决策树

​​【原创】GBDT(MART)概念简介​​

Gradient Boost的Gradient

而Gradient Boost与传统的Boost的区别是,每一次的计算是为了减少上一次的残差(residual),而为了消除残差,我们可以在残差减少的梯度(Gradient)方向上建立一个新的模型。所以说,在Gradient Boost中,每个新的模型的简历是为了使得之前模型的残差往梯度方向减少,与传统Boost对正确、错误的样本进行加权有着很大的区别。

​​机器学习中的算法(1)-决策树模型组合之随机森林与GBDT - LeftNotEasy - 博客园​​

我对Gradient版本的理解

Gradient版本不同之处在于它并不采用上棵树与​​y​​的差值Δy

Δ y 作为新训练样本值,而是采用损失函数的梯度∇Loss ∇ L o s s ;但是在叶节点Rjm R j m 的预测结果γjm γ j m 生成上,却采用的是搜索的方法:

GBDT_回归树


之所以可以这样,原因在于等价性:

Δy→0⇔∇Loss→0 Δ y → 0 ⇔ ∇ L o s s → 0

​Gradient boosting - Wikipedia​

我们从另一个方面来考虑:
所有的机器学习不外乎是

  • 提出Loss函数
  • 计算Loss最小化的参数

不过你在看GBDT 残差版本时候好像没有看到Loss函数吧。其实是有的:

GBDT_迭代_02


From:​​GBDT:梯度提升决策树​

这也就是说,我们讨论的残差版本只是一种狭义GDBT广义GDBT的理论基础是建构于Loss函数优化之上。换句话说,只要符合Loss函数优化的方法,都是有效的。这就是Gradient版本成立的根本所在。

Gradient Boost与神经网络的区别

GB是在空间上不断进行参数累积(比如GBDT多棵决策树);神经网络是在时间上不断进行参数累积(多次训练的结果会调整各个连接权重和bias)

为什么Xgboost快于一般GB

因为Xgboost加大了奖励惩罚项,从而加速了收敛。


标签:Loss,Gradient,残差,GBDT,版本,Boost
From: https://blog.51cto.com/u_9208248/6033997

相关文章

  • 【推荐系统】GBDT为什么可以进行特征选择
    如果需要完整代码可以关注下方公众号,后台回复“代码”即可获取,阿光期待着您的光临~文章目录2021人工智能领域新星创作者,带你从入门到精通,该博客每天更新,逐渐完善推荐系统各......
  • 【推荐系统】Facebook经典模型GBDT+LR代码实践
    如果需要完整代码可以关注下方公众号,后台回复“代码”即可获取,阿光期待着您的光临~文章目录​​一、导库​​​​二、处理数据​​​​三、构建LR模型​​​​四、构建GBDT......
  • 【树模型与集成学习】(task6)梯度提升树GBDT+LR
    学习总结(1)不同问题的提升树学习算法,主要区别在于使用的损失函数不同,如用平方误差损失函数的回归问题、用指数损失函数的分类问题、用一般损失函数的一般决策问题等。(2)不管......
  • 【机器学习】集成学习代码练习(随机森林、GBDT、XGBoost、LightGBM等)
    代码修改并注释:黄海广importwarningswarnings.filterwarnings("ignore")importpandasaspdfromsklearn.model_selectionimporttrain_test_split生成数据生成12000行......
  • 集成学习--GBDT理论
            ......
  • 集成算法--GBDT梯度提升树
    三要素:损失函数L(x,y): 真实值和预测值之间的差异弱评估器f(x):效果差的模型综合集成规则:数据、特征处理方法,构建迭代过程,参数设置等基本训练流程:以上一个弱评估器的结......
  • GBDT与XGBoost区别
    简单说就是xgboost用二阶导数取代了GBDT中的步长,所以迭代的更精确from:https://zhuanlan.zhihu.com/p/50176849GBDT和XGBoost两个模型后者在Kaggle中使用的相当频繁......
  • 梯度提升决策树GBDT
    GBDT简述梯度提升树:使用损失函数的负梯度在当前模型的值求解更为一般的提升树模型,这种基于负梯度求解提升树前向分布迭代过程叫做梯度提升树GBDT可以适用于回归问题(线......
  • Boosting, Bootstrap, Adaboost, GBDT, XGBoost, 随机森林
     Adaboost,按分类对错,分配不同的weight,计算cost function时使用这些weight,从而让“错分的样本权重越来越大,使它们更被重视”。Bootstrap也有类似思想,它在每一步迭代时不......
  • 人脸对齐之GBDT(ERT)算法解读
    1.概述文章名称:OneMillisecondFaceAlignmentwithanEnsembleofRegressionTrees 文章作者:VahidKazemi,JosephineSullivan 简要介绍:OneMillisecondFaceAlignme......