内容简介: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.A.谢弗)Clifford A.Shaffer / 电子工业出版社 / 1998-8 / 35.00元
本书综合“数据结构与算法”的知识梳理、习题解答及上机辅导等于一身;精心挑选了覆盖教学大纲的五百多道题目,并且提供所有题目的参考答案;对于较难的算法和上机题,给出了详细的分析和说明;对于学习的重点和难点、易犯的错误、题目的难易和重要性,以及国内教材的差异等都给出了必要的说明。 本书可给使用各种教材讲授和学习“数据结构与算法”(或者“数据结构”)的师生参考,是系统复习该课程和准备应考计算......一起来看看 《数据结构与算法分析》 这本书的介绍吧!