您好、欢迎来到现金彩票网!
当前位置:刘伯温高手心水论坛1 > 推导树 >

机器学习 【 GBDT算法】 实例推导计算+详细过程 (入门必备)

发布时间:2019-07-03 09:04 来源:未知 编辑:admin

  用三颗决策树预测一个人身高时,决策棵1预测为是1.7米,决策树2预测是1.75米,决策树3预测是1.8米。然后1.7 + 1.75 + 1.8 求均值,这样是不对的。因为只要训练集不变,独立训练三次的三棵树必定完全相同,这样做完全没有意义的。

  我们在用GBDT做预测的时候,每棵树的数值不是身高的实际数值,而是一个残差值,将残差值累加才是真实身高=。每一棵树学的是之前所有树的残差,这个残差累加后能得到真实值。

  例如一个人的身高是1.8米,决策树1预测为1.1米,1.8 - 1.1 = 0.7,那么残差为0.7米。然后决策树2将0.7米拿去训练学习,如果决策树2能把年龄分到0.7米的叶子节点,那累加两棵树的结果:1.1 + 0.7 = 1.8米就是实际身高;如果决策树2的结果是0.5米,那么决策树2将0.5米拿去训练学习,0.7 - 0.5 = 0.2,则还存在0.2米的残差,决策树3继续学。这就是Gradient Boosting的核心思想。

  我们都知道,决策树可以用于回归和分类。回归树用于预测实数值,用户的身高,体重,年龄,爱好,所在地的天气,湿度,温度,是否有风。分类树用于分类标签值,如气温高,低,适中、用户性别,学历,工作类型。数值相加减是有意义的,1米 + 1.5米 + 1.7米 = 3.2米,标签值相加减是无意义的,如男+男+女=到底是男是女?GBDT的核心在于累加所有树的结果作为最终结果。虽然调整后也可用于分类,但不代表GBDT的树是分类树。

  Shrinkage的思想强调的是循序渐进,就好比不能一口吃出一个胖子。每次迭代只走一小步逐渐逼近结果的效果,要比每次迈一大步很快逼近结果的方式更容易避免过拟合。即它不完全信任每一个棵残差树,它认为每棵树只学到了真理的一小部分,累加的时候只累加一小部分,通过多学几棵树弥补不足。

  提升方法实际采用加法模型(即基函数的线性组合)与前向分布算法。以决策树为基函数的提升方法称为提升树(boosting tree)。提升树模型可以表示为决策树的加法模型:

  平方损失函数,拟合的就是残差;对于一般损失函数(梯度下降),拟合的就是残差的近似值

  如下表所示:一组数据,特征为年龄、体重,身高为标签值。共有5条数据,前四条为训练样本,最后一条为要预测的样本。

  所以初始化时,r取值为所有训练样本标签值的均值。r=(1.1+1.3+1.7+1.8)/4=1.475,此时得到初始学习器

  接着,寻找回归树的最佳划分节点,遍历每个特征的每个可能取值。从年龄特征的5开始,到体重特征的70结束,分别计算方差,找到使方差最小的那个划分节点即为最佳划分节点。

  以上划分点是的总方差最小为0.0125有两个划分点:年龄21和体重60,所以随机选一个作为划分点,这里我们选年龄21。

  这里其实和上面初始化学习器是一个道理,平方损失,求导,令导数等于零,化简之后得到每个叶子节点的参数r,其实就是标签值的均值。

  样本在根节点中(即初始学习器)被预测为1.475,样本的年龄为25,大于划分节点21岁,所以被分到了右边的叶子节点,同时被预测为0.275。此时便得到样本的最总预测值为1.75。

  其中,X(i)为n维向量,表示的是第i个样本的特征,y(i)为样本的标签,在回归问题中,标签y(i)为一系列连续的值。此时,利用训练样本训练一棵CART回归树:

  此时,计算该节点上的样本的方差(此处要乘以m),方差表示的是数据的波动程度。那么,根节点的方差的m倍为:

  本篇文章中,我们学习了UnityShader的基本写法框架,以及学习了Shader中Properties(属性)的详细写法,光照、材质与颜色的具体写法。写了6个Shader作为本文Shader讲解的实...博文来自:【浅墨的游戏编程Blog】毛星云(浅墨)的专栏

  此处仅以VS2010为例,详细说明一下如何在VS环境下生成和使用C++的静态库与动态库。Qt下生成和使用静态和动态库后续再讲。本文仅供初学者参考,如果有问题欢迎大家指正。    首先简单地理解一下静态...博文来自:luyan的博客

  GBDT的思想可以用一个通俗的例子解释,假如有个人30岁,我们首先用20岁去拟合,发现损失有10岁,这时我们用6岁去拟合剩下的损失,发现差距还有4岁,第三轮我们用3岁拟合剩下的差距,差距就只有一岁了(...博文来自:brucewong0516的博客

  这篇讲到的GBDT的基本思想是“积跬步以至千里”!也就是说我每次都只学习一点,然后一步步的接近最终要预测的值(完全是gradient的思想~)。换句话来说,我们先用一个初始值来学习一棵决策树,叶子处可...博文来自:bigfacesafdasgfewgf

  boosting是提升的意思这是算法部分,看例题这里说的回归的方法一般是最小二乘法,为什么参考最小二乘法用在了前面那个例题...博文来自:LETFLYS LAB

  梯度提升决策树(GradientBoostingDecisionTree,GBDT)算法是近年来被提及比较多的一个算法,这主要得益于其算法的性能,以及该算法在各类数据挖掘以及机器学习比赛中的卓越表现,...博文来自:null的专栏

  第一篇GradientBoostDecisionTree:  GBDT是一个应用很广泛的算法,可以用来做分类、回归。在很多的数据上都有不错的效果。GBDT这个算法还有一些其他的名字,比如说MART(M...博文来自:算法改变人生

  针对Boosting的基本介绍在我的这篇文章中详细介绍了简单总结Boosting:初始对每...博文来自:blank_tj的博客

  一.前言在AdaBoost基本原理与算法描述中,我们介绍了AdaBoost的基本原理,本篇博客将介绍boosting系列算法中的另一个代表算法GBDT(GradientBoostingDecision...博文来自:Y学习使我快乐V的博客

  一、引言在集成学习原理介绍中,简单的介绍了根据个体学习器学习方式不同划分的两大类集成学习方法,个体学习器间存在强依赖关系、必须串行生成的序列化方法,如Boosting;个体学习器间不存在强依赖关系...博文来自:akira

  本文对GBDT算法原理进行介绍,从机器学习的关键元素出发,一步一步推导出GBDT算法背后的理论基础,读者可以从这个过程中了解到GBDT算法的来龙去脉。对于该算法的工程实现,本文也有较好的指导意义,实际...博文来自:杨旭东的专栏

  最近在看Kaggle2014年的一个比赛–DisplayAdvertisingChallenge。三个台湾人得了比赛的第一名,他们使用的是FFM算法(这个后面再做总结),在他们比赛的代码中,使用了GB...博文来自:horizonheart的博客

  转载:简介GBDT即梯度提升树,提升方法依然采用的是加法模型与前向分布算法。以决策树为基函数的提升方法称为...博文来自:Miracle.Zhao的博客

  继上篇介绍的集成学习大框架后本文介绍其框架里面的GBDT。原论文:https...博文来自:爱吃火锅的博客

  GBDT的两个不同版本(重要)残差版本把GBDT说成一个残差迭代树,认为每一棵回归树都在学习前N-1棵树的残差。Gradient版本把GBDT说成一个梯度迭代树,使用梯度下降法求解,认为每一棵回归树在...博文来自:Tomcat的专栏

  目录1、GBDT2、GBDT思想3、负梯度拟合4、损失函数4.1、分类4.2、回归5、GBDT回归算法6、GBDT分类算法6.1、二分类6.2、多分类7、正则化8、RF与GBDT之间的区别与联系9、优...博文来自:yyy430的博客

  GB,梯度提升,通过进行M次迭代,每次迭代产生一个回归树模型,我们需要让每次迭代生成的模型对训练集的损失函数最小,而如何让损失函数越来越小呢?我们采用梯度下降的方法,在每次迭代时通过向损失函数的负梯度...博文

  GBDT采用的是数值优化的思维,用的最速下降法去求解LossFunction的最优解,其中用CART决策树去拟合负梯度,用牛顿法求步长.XGboost用的解析的思维,对LossFunction展开到二...博文来自:格物致知

  GradientBoost的算法流程    备注:这里表示损失函数,表示样本在相对于决策面(后续分析回归问题和分类问题)的得分。 logloss    对于二类分任务而言,常常采用logloss: ...博文来自:On_theway10的博客

  周二、周三参加了QCon上海2017全球软件开发大会,听了几场机器学习相关的Session,多次提及GBDT(GradientBoostDecisionTree),并且在模型演化历史中,都有很重要或...博文来自:文西

  首先我们回顾一下GradientBoosting的本质,就是训练出,使损失函数最小,即其求解步骤如下:所以,我们首先得定义出损失函数,才能谈求解的事情。接下来我们针对不同场景,介绍相应的损失函数。回归...博文来自:xiaocong1990的博客

  阿弥陀佛,好久没写文章,实在是受不了了,特来填坑,最近实习了(ting)解(shuo)到(le)很多工业界常用的算法,诸如GBDT,CRF,topicmodel的一些算法等,也看了不少东西,有时间可以...博文来自:DarkScope从这里开始

  gbdt的算法的流程? gbdt如何选择特征? gbdt如何构建特征? gbdt如何用于分类? gbdt通过什么方式减少误差? gbdt的效果相比于传统的LR,SVM效果为什么好一些? gbdt如何加...博文来自:u014033218的专栏

  在阅读《统计学习方法》5.1.4决策树学习一节过程中,有如下一句话引起博主疑惑:决策树的损失函数通常是正则化的极大似然函数。书上并未给出具体推导,直到5.4决策树的剪枝中,直接给出了正则化的决策树损失...博文来自:wzk1996的博客

  GBDT是一种采用加法模型(基函数的线性组合)与前向分布算法并以决策树作为基函数的提升方法;该算法由多棵决策树组成,所有树的结论加起来形成最终答案;前向分布算法:加法模型是这样的:(就是基学习器的一种...博文来自:warrior的博客

  损失函数分为两项:第一项表示模型与训练数据的拟合程度,也就是代表经验误差第二项表示模型的复杂度...博文来自:luoyehuixuanaaaa的博客

  参考:决策树的学习本质上就是从训练数据集中归纳出一组分类规则,使它与训练数据矛盾较小的同时具有较强的泛华能力。决策树的损失函...博文来自:malele4th

  1.GBDT思想GBDT是集成学习Boosting家族的成员。弱学习器限定了只能使用CART回归树模型,迭代是思路是:在本轮迭代中找到一个CART回归树模型的弱学习器使得本轮的损失函数最小。即拟合误差...博文来自:m0_38019841的博客

  1、什么是CART?CART,又名分类回归树,是在ID3的基础上进行优化的决策树,学习CART记住以下几个关键点:(1)CART既能是分类树,又能是分类树;(2)当CART是分类树时,采用GINI值作...博文来自:beauty0522的博客

  jquery/js实现一个网页同时调用多个倒计时(最新的)nn最近需要网页添加多个倒计时. 查阅网络,基本上都是千遍一律的不好用. 自己按需写了个.希望对大家有用. 有用请赞一个哦!nnnn//jsn...博文来自:Websites

  这一篇,代码折腾的时间较长,完成之后都是一些小细节,主要有三:n1、引入的依赖错误;n2、启动配置错误;n3、xml文件的mapper命名空间错误。n一、完整的pom.xmlnn...博文来自:lxhjh的专栏

  本系列博客学习由非官方人员 半颗心脏 潜心所力所写,仅仅做个人技术交流分享,不做任何商业用途。如有不对之处,请留言,本人及时更改。1、 Esp8266之 搭建开发环境,开始一个“hellow worl...博文来自:徐宏的博客。

  扫二维码关注,获取更多技术分享nnn 本文承接之前发布的博客《 微信支付V3微信公众号支付PHP教程/thinkPHP5公众号支付》必须阅读上篇文章后才可以阅读这篇文章。由于最近一段时间工作比较忙,...博文来自:Marswill

  采用EasyUI 1.4.x 版本,默认default风格,异步加载页面,多Tab页展示,使用JSON文件模拟从后台动态获取数据。...博文来自:般若

  DirectX修复工具API Sets强力修复实验包下载地址:nn密码:5y5vnnnn实验包使用说明...博文来自:VBcom的专栏

  接着上次的图书管理系统rnrn修改完问题后把SpringBoot成功部署到了服务器上rn测试了下api接口,能正常访问rn那么下面就是在服务器上部署前端的vue.js了rnrnrn这里的话我们要明确一...博文来自:小时的枫的博客

  zpalyq110:你好,文章中的例子应该是用的我的文章吧,麻烦在参考文献中加一下链接

http://ivansolano.com/tuidaoshu/276.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有