梯度提升决策树(GBDT)的训练过程

news2024/11/27 22:35:07



以下通过案例(根据行为习惯预测年龄)帮助我们深入理解梯度提升决策树(GBDT)的训练过程

假设训练集有4个人(A、B、C、D),他们的年龄分别是14、16、24、26。其中A、B分别是高一和高三学生;C、D分别是应届毕业生和工作两年的员工

下面我们将分别使用回归树和GBDT,通过他们的日常行为习惯(购物、上网等)预测每个人的年龄

1、使用回归树训练

回归树训练得到的结果如图所示:

在这里插入图片描述
2、使用GBDT训练

由于我们的样本数据较少,所以我们限定叶子节点最多为2(即每棵树都只有一个分枝),并且限定树的棵树为2

梯度提升决策树(GBDT)的训练过程如下:

1) 第一棵树:假设初始值为平均年龄20,得到的结果如图所示:

在这里插入图片描述
上图中,A、B的购物金额不超过1k,C、D的购物金额超过1k,因此被分为左右两个分支,每个分支使用平均年龄作为预测值

分别计算A、B、C、D的残差(实际值减预测值):

  • A残差 = 14 − 15 = − 1 \tt =14-15=-1 =1415=1
  • B残差 = 16 − 15 = 1 \tt =16-15=1 =1615=1
  • C残差 = 24 − 25 = − 1 \tt =24-25=-1 =2425=1
  • D残差 = 26 − 25 = 1 \tt =26-25=1 =2625=1

以A为例,这里A的预测值是指前面所有树预测结果的累加和,当前由于只有一棵树,所以直接是15,其他同理

2) 第二棵树:拟合前一棵树的残差-1、1、-1、1,得到的结果如图所示:

在这里插入图片描述
上图中,A、C的上网时间超过1h,B、D的上网时间不超过1h,因此被分为左右两个分支,每个分支使用平均残差作为预测值

分别计算A、B、C、D的残差(实际值减预测值):

  • A残差 = − 1 − ( − 1 ) = 0 \tt =-1-(-1)=0 =1(1)=0
  • B残差 = 1 − 1 = 0 \tt =1-1=0 =11=0
  • C残差 = − 1 − ( − 1 ) = 0 \tt =-1-(-1)=0 =1(1)=0
  • D残差 = 1 − 1 = 0 \tt =1-1=0 =11=0

第二棵树学习第一棵树的残差,在当前这个简单场景下,已经能够保证预测值与实际值(上一轮残差)相等了,此时停止迭代

3) 迭代终止后,最后就是集成,累加所有决策树的预测结果作为最终GBDT的预测结果

在这里插入图片描述
本案例中,我们最终得到GBDT的预测结果为第一棵树的预测结果加第二棵树的预测结果

  • A:真实年龄14岁,预测年龄 15 + ( − 1 ) = 14 \tt 15+(-1)=14 15+(1)=14
  • B:真实年龄16岁,预测年龄 15 + 1 = 16 \tt 15+1=16 15+1=16
  • C:真实年龄24岁,预测年龄 25 + ( − 1 ) = 24 \tt 25+(-1)=24 25+(1)=24
  • D:真实年龄26岁,预测年龄 25 + 1 = 26 \tt 25+1=26 25+1=26

综上所述,GBDT需要将多棵树的预测结果累加,得到最终的预测结果,且每轮迭代都是在当前树的基础上,增加一棵新树去拟合前一个树预测值与真实值之间的残差


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1851670.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

分解数据堆栈:存储和计算 2.0 的分解

在LinkedIn上,有一篇优秀的帖子在数据和数据库人群中流行。它由 Theory VC 合伙人 Tomasz Tunguz 撰写,讲述了我们自 2019 年以来讨论的趋势。 数据库正在成为高速查询引擎,并正在抛弃存储。这并不意味着存储不重要,相反&#xf…

灵感枯竭?来看Charls,新指标发一区(IF=9.3)| CHARLS等七大老年公共数据库周报(6.12)...

七大老年公共数据库 七大老年公共数据库共涵盖33个国家的数据,包括:美国健康与退休研究 (Health and Retirement Study, HRS);英国老龄化纵向研究 (English Longitudinal Study of Ageing, ELSA);欧洲健康、…

网页抓取单词关联

在当今数字化的时代,数据的获取与处理成为了众多企业和开发者关注的焦点。API 服务的出现,为我们打开了高效、便捷获取和利用数据的新大门。接下来,为您介绍几款独具特色的 API 服务,它们将为您的业务和开发工作带来前所未有的便利…

idea中tomcat控制台乱码

文章目录 解决IDEA中tomcat控制台中文乱码问题1.方法一2.方法二 解决IDEA中tomcat控制台中文乱码问题 网上有很多的教程,这里我给大家汇总一下 1.方法一 file –>Settings 点击Settings–>选择点击Editor—>选择点击General–>选择点击Console –>…

【pytorch02】手写数字问题引入

1.数据集 现实生活中遇到的问题 车牌识别身份证号码识别快递单的识别 都会涉及到数字识别 MNIST(收集了很多人手写的0到9数字的图片) 每个数字拥有7000个图像train/test splitting:60k vs 10k 图片大小28 28 数据集划分成训练集和测试集合的意义…

【因果推断python】50_去偏/正交机器学习2

目录 Frisch-Waugh-Lovell on Steroids CATE Estimation with Double-ML Frisch-Waugh-Lovell on Steroids 双重/偏差 ML 其思想非常简单:在构建结果和治疗残差时使用 ML 模型: 是估计,是估计 我们的想法是,ML 模型具有超强的…

python创建虚拟环境venv

为什么要创建虚拟环境 使用python创建虚拟环境是为了让项目的依赖隔离开来,互不干扰,使得每个项目都运行在一个独立的Python环境中。 创建虚拟环境 1. 命令行创建 step1. 创建 # 1. 进入到你的项目目录中 cd myproject # 使用python创建一个虚拟环境…

2024年化学、能源与核工程国际会议(ICCENE 2024)

2024年化学、能源与核工程国际会议(ICCENE 2024) 2024 International Conference on Chemical, Energy and Nuclear Engineering (ICCENE 2024) 会议地点:三亚,中国 网址:www.iccene.com 邮箱: iccenesub-conf.com 投稿主题请注明:ICCEN…

osgVerse加载3dtiles

本文利用osgVerse中的osgdb_3dtiles插件,展示其加载倾斜模型3dtiles的效果,并对其实现做的分析,分析其按照osg的场景结构显示3dtiles的方法。 目录 1 osgVerse显示3dtiles效果2 osg的场景结构与3dtiles结构分析3 部分代码实现细节内容 1 osgVerse显示3dtiles效果数据下载地址…

头歌资源库(14)残缺棋盘

一、 问题描述 二、算法思想 首先,将2^k 2^k的棋盘划分为四个相等大小的子棋盘,定义为左上、左下、右上和右下四个子棋盘。 然后,根据残缺格的坐标,确定其中一个子棋盘是不完整的,即残缺子棋盘。假设残缺子棋盘是左…

Pytest框架中pytest.mark功能

文章目录 mark功能 1. 使用pytest.mark.skip 2. 使用pytest.mark.skipif 3. 使用 pytest.mark.xfail 4使用pytest.mark.parametrize 5 使用pytest.mark.自定义标记 6 使用pytest.mark.usefixtures pytest 的mark功能在pytest官方文档是这样解释的: https://…

【C语言】解决C语言报错:Buffer Overflow

文章目录 简介什么是Buffer OverflowBuffer Overflow的常见原因如何检测和调试Buffer Overflow解决Buffer Overflow的最佳实践详细实例解析示例1:字符串操作不当示例2:数组访问越界示例3:未检查输入长度示例4:使用不安全的函数 进…

公共 IP 地址和私有 IP 地址的区别总结

什么是IP地址? IP 地址,即互联网协议地址(Internet Protocol Address),是网络设备在网络中进行通信的标识。IP 地址可以看作是设备在网络中的“地址”,有助于数据包在网络中找到正确的接收端。IP 地址主要…

FP7195做大功率钓鱼灯应用方案,0.1%深度无极无频闪调光调色应用,调光曲线顺滑无突兀

文章目录 文章目录 方案背景 一、夜钓灯电路框架 二、FP7195芯片介绍 芯片参数 总结 方案背景 目前夜钓正在逐渐变得时尚起来,随着夜钓群体的年轻化,人们对于夜钓灯的审美要求也越来越高。夜钓灯作为夜间钓鱼的重点装备,不仅仅需要高质量的光…

视频号封禁VS京东支持,AI虚拟主播是红利还是“毒药”?

大数据产业创新服务媒体 ——聚焦数据 改变商业 在数字化浪潮的推动下,AI技术正以前所未有的速度渗透到我们生活的每一个角落。而当AI技术遇上直播带货,一个全新的概念——AI数字人直播带货,便应运而生。这不仅仅是一场技术的革新&#xff0…

定时任务查看报拒绝权限,不执行

排查思路: 1、查看/etc/cron.deny ##此文件是空的 cat /etc/cron.deny只有cron.deny文件。但文件无内容,不存在限制(如果存在cron.allow文件,以cron.allow文件优先;若cron.allow和cron.deny都存在,以cron…

力扣SQL50 查询结果的质量和占比 AVG(条件)

Problem: 1211. 查询结果的质量和占比 &#x1f468;‍&#x1f3eb; 参考题解 Code select query_name,round(avg(rating/position),2) as quality,round(100 * avg(rating < 3), 2) as poor_query_percentage from Queries group by query_name -- 到此结束过不了最后一…

el-upload 组件上传文件(查询,上传,删除,下载功能)

1.html el-upload中的属性&#xff1a; <el-upload ref"upload" class"upload-demo" // element-ui自带的样式 :headers"headerOdj" // 文件上传的头,带token&#xff08;重要&#xff0c;不然传输大文件会断掉&…

使用Spring Boot实现用户认证和授权

文章目录 引言第一章 Spring Boot概述1.1 什么是Spring Boot1.2 Spring Boot的主要特性 第二章 用户认证和授权基础知识2.1 用户认证2.2 用户授权2.3 Spring Security概述 第三章 项目初始化第四章 实现用户认证和授权4.1 定义用户实体类和角色实体类4.2 创建Repository接口4.3…

昇思25天学习打卡营第4天 | 数据变换

内容介绍&#xff1a;通常情况下&#xff0c;直接加载的原始数据并不能直接送入神经网络进行训练&#xff0c;此时我们需要对其进行数据预处理。MindSpore提供不同种类的数据变换&#xff08;Transforms&#xff09;&#xff0c;配合数据处理Pipeline来实现数据预处理。所有的T…