1. 简介

  • GBDT是boosting的一种方法

1.1 基本原理

  • 训练一个模型m1,产生错误e1
  • 针对e1训练一个模型m2,产生错误e2
  • 针对e2训练第三个模型m3,产生错误e3 …
  • 最终预测结果是:m1+m2+m3+…

1.2 主要思想

  • 每一次建立单个分类器时,是在之前建立的模型的损失函数的梯度下降方向。
  • 损失函数越大,说明模型越容易出错,如果我们的模型能让损失函数持续的下降,则说明我们的模型在持续不断的改进,而最好
    的方式就是让损失函数在其梯度的方向上下降。
  • GBDT的核心在于每一棵树学的是之前所有树结论和的残差
    • 残差就是真实值与预测值的差值
    • 为了得到残差,GBDT中的树全部是回归树,不用分类树
  • Shrinkage(缩减)是 GBDT 的一个重要演进分支
    • Shrinkage的思想在于每次走一小步来逼近真实的结果,比直接迈大步的方式好
    • Shrinkage可以有效减少过拟合的风险。它认为每棵树只学到了一小部分,累加的时候只累加这一小部分,通过多学习几棵
      树来弥补不足。这累加的一小部分(步长*残差)来逐步逼近目标,所以各个树的残差是渐变的而不是陡变的。
  • GBDT可以用于回归问题(线性和非线性),也可用于分类问题

2. GBDT和随机森林的异同点

2.1 相同点

  • 都是由多棵树构成,最终的结果也是由多棵树决定。

2.2 不同点

  • 随机森林可以由分类树和回归树组成,GBDT只能由回归树组成。
  • 随机森林的树可以并行生成,而GBDT只能串行生成,所以随机森林的训练速度相对较快。
  • 随机森林关注减小模型的方差,GBDT关注减小模型的偏差。
  • 随机森林对异常值不敏感,GBDT对异常值非常敏感。
  • 随机森林最终的结果是多数投票或简单平均,而GBDT是加权累计起来。

3. GBDT的优缺点

3.1 优点

  • GBDT每一次的残差计算都增大了分错样本的权重,而分对的权重都趋近于0,因此泛化性能比较好。
  • 可以灵活的处理各种类型的数据。
    预测精度高

3.2 缺点

  • 对异常值比较敏感。
  • 由于分类器之间存在依赖关系,所以很难进行并行计算。

Gradient Boosting算法相关推荐

  1. python 梯度提升树_梯度提升方法(Gradient Boosting)算法案例

    GradientBoost算法 python实现,该系列文章主要是对<统计学习方法>的实现. 完整的笔记和代码以上传到Github,地址为(觉得有用的话,欢迎Fork,请给作者个Star) ...

  2. 3. 机器学习中为什么需要梯度下降_梯度提升(Gradient Boosting)算法

    本文首发于我的微信公众号里,地址:梯度提升(Gradient Boosting)算法 本文禁止任何形式的转载. 我的个人微信公众号:Microstrong 微信公众号ID:MicrostrongAI ...

  3. 机器学习笔记之集成学习(四)Gradient Boosting

    机器学习笔记之集成学习--Gradient Boosting 引言 回顾: Boosting \text{Boosting} Boosting算法思想与 AdaBoost \text{AdaBoost ...

  4. 机器学习 —— Boosting算法

    Boosting算法(提升法) 算法的三个要素 (1)函数模型:Boosting的函数模型是叠加型的,即 F(x)=∑i=1kfi(x;θi)F(x)=∑i=1kfi(x;θi) F(x)=\sum_ ...

  5. boosting算法的分类

    https://www.cnblogs.com/liuq/p/9947764.html 另外高维回归,L2boosting的结果和lasso相近,可能说明L2boosting可以解释为某种L1正则化的 ...

  6. 机器学习实战之路 —— 4 Boosting算法

    机器学习实战之路 -- 4 Boosting算法 1. Boosting算法概述 2. 主要算法实现 2.1 AdaBoost 2.2 GBDT 2.3 XGBoost 3. 实战 - 鸢尾花数据集分 ...

  7. R语言使用caret包构建gbdt模型(随机梯度提升树、Stochastic Gradient Boosting )构建回归模型、通过method参数指定算法名称

    R语言使用caret包构建gbdt模型(随机梯度提升树.Stochastic Gradient Boosting )构建回归模型.通过method参数指定算法名称 目录

  8. 复盘:GBDT,梯度提升决策树,Gradient Boosting Decision Tree,堪称最好的算法之一

    复盘:GBDT,梯度提升决策树,Gradient Boosting Decision Tree,堪称最好的算法之一 提示:系列被面试官问的问题,我自己当时不会,所以下来自己复盘一下,认真学习和总结,以 ...

  9. 集成学习Bagging和Boosting算法总结

    一.集成学习综述 1.集成方法或元算法是对其他算法进行组合的一种方式,下面的博客中主要关注的是AdaBoost元算法.将不同的分类器组合起来,而这种组合结果被称为集成方法/元算法.使用集成算法时会有很 ...

最新文章

  1. 安装 mysql-8.0.23-winx64
  2. 计算机实训课教案模板,CorelDRAW实训课教案(7周)
  3. gatsby_如何在Gatsby.js中使用本地状态保持页面之间的状态
  4. HttpClient 模拟登录网易微博
  5. 21个Docker 命令
  6. namenode 无法启动之每次开机需要重新格式化-tmp
  7. 高频直流电源在整改、降压和作用方面解决方案
  8. 软件测试技术之项目上线流程
  9. matlab中grid的用法
  10. a指定许可服务器无效,错误的hostid与许可证服务器
  11. POJ3658Matrix( 双重二分+负数+死循环)
  12. 蓝桥杯——算法训练——共线
  13. 关于Chrome浏览器设置启用Flash插件
  14. 批量操作:ps怎么(如何)导入图片的方法
  15. 业务流水号(交易号)生成方法
  16. python相关岗位面试题总结(五)(持续更新)
  17. Windows驱动开发WDM (13)- 过滤驱动
  18. Java1Java2
  19. Hamming Embedding 汉明嵌入
  20. 4. Python--Scipy库(下/13-17)

热门文章

  1. 韩の花样男子 全集跟踪BT下载 每周更新
  2. python图片增强 曝光度,亮度
  3. 通过嘀咕同步Twitter信息
  4. 圆、圆锥和球的相关概念和定义
  5. 怎么做Instagram推广引流能让亚马逊销量暴涨?
  6. Spark弹性分布式数据集RDD:基于内存集群计算的容错抽象
  7. 超好用的Android高亮引导库
  8. Android进程间通信 Messenger详解
  9. 校OJ P1139 -- 秦心的面具
  10. 关于暗通道先验去雾问题的小结