GBDT是集成学习中的一员,想要理解梯度提升,必须先理解什么是提升树,想理解提升树要了解什么是提升方法。

提升方法本身是采用了加法模型(基函数的线性组合)和前向分步算法,从弱学习算法出发,反复学习,得到一系列弱学习器,然后通过组合弱学习器得到强学习器。当每个弱学习器是CART树的时候,就是提升树。对于回归问题一般采用平方误差作为损失函数,分类问题采用指数损失函数,一般问题用一般的损失函数。

一、提升树

每一步生成一棵树,不断优化当前的学习器,用优化后的学习器学习到的值,和原始标签数据计算残差,继续将残差作为下一棵树的初始数据进行拟合,每一棵树都是CART回归树,因为每次迭代拟合的目标是残差,是连续值。

回归问题中提升树的生成方法:二、梯度提升

那么为什么要用负梯度呢?对于损失函数是平方误差的回归问题,我们可以简单优化,但是对于一般的损失函数用损失函数的负梯度来拟合本轮损失的近似值,利用最速下降法的近似方法来起到和回归问题中的残差近似的效果。

三、梯度提升实例四、梯度提升实例

用一个稍微复杂一点点的例子来说明一下,上个例子中只有一个特征,不易理解。要求最大深度为3,树5棵。

调用sklearn跑出来的5棵树如下图,

初始值,f0(x)=1.475

第一棵树:

第二棵树: 第三棵树: 第四棵树: 第五棵树:

详细解答过程:(感谢大神) mp.weixin.qq.com/s/ljC2dYfUz…

【机器学习基础】GBDT--梯度提升树实例分析完全解读相关推荐

  1. 机器学习 | Python实现GBDT梯度提升树模型设计

    机器学习 | Python实现GBDT梯度提升树模型设计 目录 机器学习 | Python实现GBDT梯度提升树模型设计 基本介绍 模型描述 程序设计 参考资料 基本介绍 GBDT也是集成学习Boos ...

  2. xgboost多分类原理_XGboost原理基础之梯度提升树

    这次的文章先讲xgboost比较重要的点,梯度提升树和梯度提升树和xgboost的关系. 一.从提升方法到梯度提升树 我们先从GBDT中的梯度提升树原理讲起,讲到梯度提升树就先从提升树开始讲起.提升树 ...

  3. 机器学习Sklearn实战——梯度提升树二分类原理

    一.算法使用 (一)创建 (二)参数调整 cross_val_score:求单一参数最合适的值(KNN) GridSearchCV网格搜索:多参数组合最优的值 标准:准确率,精确率,召回率,F1 (三 ...

  4. [机器学习算法]GBDT梯度提升决策树

    参考:https://blog.csdn.net/google19890102/article/details/51746402/ 一.回顾 1.有监督学习方法 (1).模型:给定自变量和因变量进行预 ...

  5. 残差神经网络_什么是残差——一文让你读懂GBDT(梯度提升树)-和-Resnet-(残差网络)的原理...

    残差 残差在数理统计中是指实际观察值与估计值(拟合值)之间的差.在集成学习中可以通过基模型拟合残差,使得集成的模型变得更精确:在深度学习中也有人利用layer去拟合残差将深度神经网络的性能提高变强.这 ...

  6. 深度学习核心技术精讲100篇(十九)--GBDT(梯度提升树) 和 Resnet (残差网络)的原理

    残差 残差在数理统计中是指实际观察值与估计值(拟合值)之间的差.在集成学习中可以通过基模型拟合残差,使得集成的模型变得更精确:在深度学习中也有人利用layer去拟合残差将深度神经网络的性能提高变强.这 ...

  7. 【机器学习】集成学习之梯度提升树GBDT

    Boosting方法的核心思想是对错分类的样本给予更高关注度,也就是样本权重,在提升树中与之对应的就是残差,在梯度提升树中就是梯度了. Regression Decision Tree:回归树 回归树 ...

  8. 【机器学习】梯度提升树(GBDT)的原理小结

    在集成学习之Adaboost算法原理小结中,我们对Boosting家族的Adaboost算法做了总结,本文就对Boosting家族中另一个重要的算法梯度提升树(Gradient Boosting De ...

  9. 梯度提升树GBDT的理论学习与细节补充

    1. 写在前面 今天是梯度提升树GBDT的理论学习和细节补充, 之前整理过XGBOOST和Lightgbm, 在那里面提到了GBDT, 但是只是简单的一过, 并没有关注太多GBDT的细节, 所以这次借 ...

最新文章

  1. PPPoE***2:PADR耗竭sessionid
  2. 我为什么选择在北上广深打拼?
  3. CakePHP 2.10.17 发布,PHP 快速开发框架
  4. OC(Open collector) 集电极开路
  5. 同时获取同一等级下多个class值的节点的方法
  6. properties(map)增.删.改.查.遍历
  7. Bugzilla 使用指南
  8. 《scikit-learn》随机森林之深入学习
  9. BioSPPy - Biosignal(生物信号处理库)
  10. php和nginx如何,php和nginx如何交互
  11. [synergy]两台机器公用键盘鼠标
  12. 大数据时代下的用户洞察:用户画像建立(ppt版)
  13. echarts3力引导布局,固定某节点
  14. java日志文件采集,日志收集十大技术细节
  15. 编程题:首尾相连的字符串
  16. 同时展示多张图片的无缝轮播
  17. java实现日历打印项目
  18. 通讯与计算机网络在线作业,浙大秋通讯与计算机网络在线作业试题及答案
  19. Nvme驱动补丁 解决Usb3.0/3.1驱动和磁盘控制器WIN7蓝屏方案
  20. 中国广电剑未出鞘,但中国联通和中国电信已吓得瑟瑟发抖

热门文章

  1. UA PHYS515A 电磁理论V 电磁波与辐射6 波导
  2. 修改.fig文件中图的x轴或y轴的标题及数据图
  3. 龙格库塔法基本C程序
  4. C++17 非类型模板参数的auto 和 DevC++ 支持C++17
  5. WPF基础入门2 - WPF窗口类和垂直布局面板基本使用
  6. cesium首次加载gltf模型成功
  7. node.js学习总结
  8. Windows系统漏洞学习总结
  9. python 将数组中取某一值的元素全部替换为其他元素的方法
  10. Wannafly挑战赛22