Gradient Boosting算法
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算法相关推荐
- python 梯度提升树_梯度提升方法(Gradient Boosting)算法案例
GradientBoost算法 python实现,该系列文章主要是对<统计学习方法>的实现. 完整的笔记和代码以上传到Github,地址为(觉得有用的话,欢迎Fork,请给作者个Star) ...
- 3. 机器学习中为什么需要梯度下降_梯度提升(Gradient Boosting)算法
本文首发于我的微信公众号里,地址:梯度提升(Gradient Boosting)算法 本文禁止任何形式的转载. 我的个人微信公众号:Microstrong 微信公众号ID:MicrostrongAI ...
- 机器学习笔记之集成学习(四)Gradient Boosting
机器学习笔记之集成学习--Gradient Boosting 引言 回顾: Boosting \text{Boosting} Boosting算法思想与 AdaBoost \text{AdaBoost ...
- 机器学习 —— Boosting算法
Boosting算法(提升法) 算法的三个要素 (1)函数模型:Boosting的函数模型是叠加型的,即 F(x)=∑i=1kfi(x;θi)F(x)=∑i=1kfi(x;θi) F(x)=\sum_ ...
- boosting算法的分类
https://www.cnblogs.com/liuq/p/9947764.html 另外高维回归,L2boosting的结果和lasso相近,可能说明L2boosting可以解释为某种L1正则化的 ...
- 机器学习实战之路 —— 4 Boosting算法
机器学习实战之路 -- 4 Boosting算法 1. Boosting算法概述 2. 主要算法实现 2.1 AdaBoost 2.2 GBDT 2.3 XGBoost 3. 实战 - 鸢尾花数据集分 ...
- R语言使用caret包构建gbdt模型(随机梯度提升树、Stochastic Gradient Boosting )构建回归模型、通过method参数指定算法名称
R语言使用caret包构建gbdt模型(随机梯度提升树.Stochastic Gradient Boosting )构建回归模型.通过method参数指定算法名称 目录
- 复盘:GBDT,梯度提升决策树,Gradient Boosting Decision Tree,堪称最好的算法之一
复盘:GBDT,梯度提升决策树,Gradient Boosting Decision Tree,堪称最好的算法之一 提示:系列被面试官问的问题,我自己当时不会,所以下来自己复盘一下,认真学习和总结,以 ...
- 集成学习Bagging和Boosting算法总结
一.集成学习综述 1.集成方法或元算法是对其他算法进行组合的一种方式,下面的博客中主要关注的是AdaBoost元算法.将不同的分类器组合起来,而这种组合结果被称为集成方法/元算法.使用集成算法时会有很 ...
最新文章
- 安装 mysql-8.0.23-winx64
- 计算机实训课教案模板,CorelDRAW实训课教案(7周)
- gatsby_如何在Gatsby.js中使用本地状态保持页面之间的状态
- HttpClient 模拟登录网易微博
- 21个Docker 命令
- namenode 无法启动之每次开机需要重新格式化-tmp
- 高频直流电源在整改、降压和作用方面解决方案
- 软件测试技术之项目上线流程
- matlab中grid的用法
- a指定许可服务器无效,错误的hostid与许可证服务器
- POJ3658Matrix( 双重二分+负数+死循环)
- 蓝桥杯——算法训练——共线
- 关于Chrome浏览器设置启用Flash插件
- 批量操作:ps怎么(如何)导入图片的方法
- 业务流水号(交易号)生成方法
- python相关岗位面试题总结(五)(持续更新)
- Windows驱动开发WDM (13)- 过滤驱动
- Java1Java2
- Hamming Embedding 汉明嵌入
- 4. Python--Scipy库(下/13-17)