理解GBDT算法(二)——基于残差的版本

GBDT算法有两种描述思路,一个是基于残差的版本,一个是基于梯度gradient的版本。这篇我们先说说基于残差的版本。

前面一篇博文已经说了该版本的大致原理,请参考。

http://blog.csdn.net/puqutogether/article/details/41957089

这篇我们再总结一个几个注意点:

  • 这个版本的核心思路:每个回归树学习前面树的残差,并且用shrinkage把学习到的结果大步变小步,不断迭代学习。其中的代价函数是常见的均方差。
  • 其基本做法就是:先学习一个回归树,然后“真实值-预测值*shrinkage”求此时的残差,把这个残差作为目标值,学习下一个回归树,继续求残差……直到建立的回归树的数目达到一定要求或者残差能够容忍,停止学习。
  • 我们知道,残差是预测值和目标值的差值,这个版本是把残差作为全局最优的绝对方向来学习。
  • 这个版本更加适用于回归问题,线性和非线性的均可,而且在设定了阈值之后还可以有分类的功能。
  • 当时该版本使用残差,很难处理纯回归以外的问题。版本二中使用梯度,只要建立的代价函数能够求导,那么就可以使用版本二的GBDT算法,例如LambdaMART学习排序算法。
  • Shrinkage和梯度下降法中学习步长alpha的关系。shrinkage设小了只会让学习更慢,设大了就等于没设,它适用于所有增量迭代求解问题;而Gradient的步长设小了容易陷入局部最优点,设大了容易不收敛。它仅用于用梯度下降求解。这两者其实没太大关系。
时间: 2024-10-08 16:02:32

理解GBDT算法(二)——基于残差的版本的相关文章

理解GBDT算法(三)——基于梯度的版本

上一篇中我们讲到了GBDT算法的第一个版本,是基于残差的学习思路.今天来说第二个版本,可以说这个版本的比较复杂,涉及到一些推导和矩阵论知识.但是,我们今天可以看到,两个版本之间的联系,这个是学习算法的一个重要步骤. 这篇博文主要从下面这几个方面来说基于梯度的GBDT算法: (1)算法的基本步骤: (2)其中的学数学推导: (3)基于梯度的版本和基于残差的版本之间的联系: 在讲解算法的详细步骤之前,我们可以先明确一个思路,就是梯度版本的GBDT是用多类分类Multi-class classific

2维FFT算法实现——基于GPU的基2快速二维傅里叶变换

上篇讲述了一维FFT的GPU实现(FFT算法实现——基于GPU的基2快速傅里叶变换),后来我又由于需要做了一下二维FFT,大概思路如下. 首先看的肯定是公式: 如上面公式所描述的,2维FFT只需要拆分成行FFT,和列FFT就行了,其中我在下面的实现是假设原点在F(0,0),由于我的代码需要原点在中心,所以在最后我将原点移动到了中心. 下面是原点F(0,0)的2维FFT的伪代码: //C2DFFT //被执行2DFFT的是一个N*N的矩阵,在source_2d中按行顺序储存 //水平方向FFT f

GBDT算法简述

提升决策树GBDT 梯度提升决策树算法是近年来被提及较多的一个算法,这主要得益于其算法的性能,以及该算法在各类数据挖掘以及机器学习比赛中的卓越表现,有很多人对GBDT算法进行了开源代码的开发,比较火的是陈天奇的XGBoost和微软的LightGBM 一.监督学习 1.  监督学习的主要任务 监督学习是机器学习算法中重要的一种,对于监督学习,假设有m个训练样本: 其中, ,如分类问题:也可以为连续值,如回归问题.在监督学习中利用训练样本训练出模型,该模型能够细线从样本特征 . 为了能够对映射F进行

GBDT 算法:原理篇

本文由云+社区发表 GBDT 是常用的机器学习算法之一,因其出色的特征自动组合能力和高效的运算大受欢迎. 这里简单介绍一下 GBDT 算法的原理,后续再写一个实战篇. 1.决策树的分类 决策树分为两大类,分类树和回归树. 分类树用于分类标签值,如晴天/阴天/雾/雨.用户性别.网页是否是垃圾页面: 回归树用于预测实数值,如明天的温度.用户的年龄.网页的相关程度: 两者的区别: 分类树的结果不能进行加减运算,晴天 晴天没有实际意义: 回归树的结果是预测一个数值,可以进行加减运算,例如 20 岁 3

GB和GBDT 算法流程及分析

1.优化模型的两种策略: 1)基于残差的方法 残差其实就是真实值和预测值之间的差值,在学习的过程中,首先学习一颗回归树,然后将“真实值-预测值”得到残差,再把残差作为一个学习目标,学习下一棵回归树,依次类推,直到残差小于某个接近0的阀值或回归树数目达到某一阀值.其核心思想是每轮通过拟合残差来降低损失函数. 总的来说,第一棵树是正常的,之后所有的树的决策全是由残差来决定. 2)使用梯度下降算法减小损失函数. 对于一般损失函数,为了使其取得最小值,通过梯度下降算法,每次朝着损失函数的负梯度方向逐步移

理解DeepBox算法

理解DeepBox算法 基本情况 论文发表在ICCV2015,作者是Berkeley的博士生Weicheng Kuo: @inproceedings{KuoICCV15DeepBox, Author = {Weicheng Kuo, Bharath Hariharan, Jitendra Malik}, Title = {DeepBox:Learning Objectness with Convolutional Networks}, Booktitle = {International Con

GBDT算法梳理

1.GBDT(Gradient Boosting Decision Tree)思想 Boosting : 给定初始训练数据,由此训练出第一个基学习器: 根据基学习器的表现对样本进行调整,在之前学习器做错的样本上投入更多关注: 用调整后的样本,训练下一个基学习器: 重复上述过程 T 次,将 T 个学习器加权结合. Gradient boosting Gradient boosting是 boosting 的其中一种方法,它主要的思想是,每一次建立单个学习器时,是在之前建立的模型的损失函数的梯度下降

处理分类问题常用算法(二)-----算法岗面试题

● 分层抽样的适用范围 参考回答: 分层抽样利用事先掌握的信息,充分考虑了保持样本结构和总体结构的一致性,当总体由差异明显的几部分组成的时候,适合用分层抽样. ● LR的损失函数 参考回答: M为样本个数,为模型对样本i的预测结果,为样本i的真实标签. ● LR和线性回归的区别 参考回答: 线性回归用来做预测,LR用来做分类.线性回归是来拟合函数,LR是来预测函数.线性回归用最小二乘法来计算参数,LR用最大似然估计来计算参数.线性回归更容易受到异常值的影响,而LR对异常值有较好的稳定性. ● 生

集成学习之梯度提升树(GBDT)算法

梯度提升树(GBDT)的全称是Gradient Boosting Decision Tree.GBDT还有很多的简称,例如GBT(Gradient Boosting Tree), GTB(Gradient Tree Boosting ),GBRT(Gradient Boosting Regression Tree), MART(Multiple Additive Regression Tree)等,其实都是指的同一种算法,本文统一简称GBDT. GBDT 也是 Boosting 算法的一种,但是