内容简介:GBDT是集成学习中的一员,想要理解梯度提升,必须先理解什么是提升树,想理解提升树要了解什么是提升方法。提升方法本身是采用了加法模型(基函数的线性组合)和前向分步算法,从弱学习算法出发,反复学习,得到一系列弱学习器,然后通过组合弱学习器得到强学习器。当每个弱学习器是CART树的时候,就是提升树。对于回归问题一般采用平方误差作为损失函数,分类问题采用指数损失函数,一般问题用一般的损失函数。每一步生成一棵树,不断优化当前的学习器,用优化后的学习器学习到的值,和每一轮的初始拟合数据计算残差,继续将残差作为下一棵树
GBDT是集成学习中的一员,想要理解梯度提升,必须先理解什么是提升树,想理解提升树要了解什么是提升方法。
提升方法本身是采用了加法模型(基函数的线性组合)和前向分步算法,从弱学习算法出发,反复学习,得到一系列弱学习器,然后通过组合弱学习器得到强学习器。当每个弱学习器是CART树的时候,就是提升树。对于回归问题一般采用平方误差作为损失函数,分类问题采用指数损失函数,一般问题用一般的损失函数。
一、提升树
每一步生成一棵树,不断优化当前的学习器,用优化后的学习器学习到的值,和每一轮的初始拟合数据计算残差,继续将残差作为下一棵树的初始数据进行拟合,每一棵树都是CART回归树,因为每次迭代拟合的目标是残差,是连续值。
回归问题中提升树的生成方法:
那么为什么要用负梯度呢?对于损失函数是平方误差的回归问题,我们可以简单优化,但是对于一般的损失函数用损失函数的负梯度来拟合本轮损失的近似值,利用最速下降法的近似方法来起到和回归问题中的残差近似的效果。
用一个稍微复杂一点点的例子来说明一下,上个例子中只有一个特征,不易理解。要求最大深度为3,树5棵。
调用sklearn跑出来的5棵树如下图,
初始值,f0(x)=1.475
第一棵树:
第二棵树:
第三棵树:
第四棵树:
第五棵树:
详细解答过程:(感谢大神) mp.weixin.qq.com/s/ljC2dYfUz…
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 内核通信之 Netlink 源码分析和实例分析
- 内核通信之 Netlink 源码分析和实例分析
- Redis 实例分析工具
- Golang常量实例分析教程
- 实例分析理解Java字节码
- C++虚函数表实例分析
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
C++Templates中文版
David Vandevoorde、Nicolai M.Josuttis / 陈伟柱 / 人民邮电出版社 / 2008-2 / 69.00元
本书是C++模板编程的完全指南,旨在通过基本概念、常用技巧和应用实例3方面的有用资料,为读者打下C++模板知识的坚实基础。 全书共22章。第1章全面介绍了本书的内容结构和相关情况。第1部分(第2~7章)以教程的风格介绍了模板的基本概念,第2部分(第8~13章)阐述了模板的语言细节,第3部分(第14~18章)介绍了C++模板所支持的基本设计技术,第4部分(第19~22章)深入探讨了各种使用模板......一起来看看 《C++Templates中文版》 这本书的介绍吧!
MD5 加密
MD5 加密工具
RGB CMYK 转换工具
RGB CMYK 互转工具