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




以下通过案例(根据行为习惯预测年龄)帮助我们深入理解梯度提升决策树(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.mzph.cn/bicheng/31627.shtml

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

相关文章

大模型时代,新手和程序员如何转型入局AI行业?

在近期的全国两会上,“人工智能”再次被提及,并成为国家战略的焦点。这一举措预示着在接下来的十年到十五年里,人工智能将获得巨大的发展红利。技术革命正在从“互联网”向“人工智能”逐步迈进,我将迎来新一轮技术革新和人才需求…

ASP.NET Core 6.0 启动方式

启动方式 Visualstudio 2022启动 IIS Express IIS Express 是一个专为开发人员优化的轻型独立版本的 IIS。 借助 IIS Express,可以轻松地使用最新版本的 IIS 开发和测试网站。 控制台版面 直接在浏览器输入监听的地址,监听的是 http://localhost:5137 脚本启动 dotnet run…

C++11 右值引用和移动语义

目录 1.左值引用和右值引用 2.右值引用使用场景(移动语义)和意义 3.右值引用引用左值及其一些更深入的使用场景分析 4.完美转发 1.左值引用和右值引用 传统的C语法中就有引用的语法,而C11中新增了的右值引用语法特性,所以从现…

如何定义一个单选按钮?

在HTML中&#xff0c;你可以使用<input>元素来定义一个单选按钮&#xff08;radio button&#xff09;。单选按钮通常用于从一组选项中选择一个选项。为了将多个单选按钮组合在一起&#xff0c;使它们成为一组&#xff08;即&#xff0c;一次只能选择其中一个&#xff09…

Verilog:【8】基于FPGA实现SD NAND FLASH的SPI协议读写

在此介绍的是使用FPGA实现SD NAND FLASH的读写操作&#xff0c;以雷龙发展提供的CS创世SD NAND FLASH样品为例&#xff0c;分别讲解电路连接、读写时序与仿真和实验结果。 目录 1 视频讲解 2 SD NAND FLASH背景介绍 3 样品申请 4 电路结构与接口协议 4.1 SD NAND 4.2 SD NAND测…

free命令——显示系统内存使用情况

free命令的功能是显示系统内存使用情况&#xff0c;包含物理内存和交换内存的总量、使用量和空闲量。 语法格式&#xff1a;free [选项] 常用选项及含义 选项含义-b以字节B为单位显示内存和交换内存的容量使用情况-k以KB为单位显示内存和交换内存的容量使用情况-m以MB为单位…

机器学习算法的电影推荐系统以及票房预测系统

一、实验概述 1. 实验目标 本项目希望基于电影数据集&#xff0c;依据电影的简介、关键词、预算、票房、用户评分等特征来对电影进行分析&#xff0c;并完成以下任务&#xff1a; 对电影特征的可视化分析对电影票房的预测多功能个性化的电影推荐算法 2. 数据集 针对票房预…

AIGC-CVPR2024best paper-Rich Human Feedback for Text-to-Image Generation-论文精读

Rich Human Feedback for Text-to-Image Generation斩获CVPR2024最佳论文&#xff01;受大模型中的RLHF技术启发&#xff0c;团队用人类反馈来改进Stable Diffusion等文生图模型。这项研究来自UCSD、谷歌等。 在本文中&#xff0c;作者通过标记不可信或与文本不对齐的图像区域&…

内网环境使用Docker部署Qwen2模型

背景介绍 在我参与的一个国企项目中,我们基于大语言模型开发了一些应用,但是甲方公司所有的资源环境都是纯内网。更为有趣的是,甲方公司已自主搭建并运行着一套百度机器学习平台(BML),客户要求所有的大模型部署必须依托于现有的BML平台进行,而非独立构建全新的基础设施…

编程机器人方阵怎么编程的:深入解析其编程逻辑与实现

编程机器人方阵怎么编程的&#xff1a;深入解析其编程逻辑与实现 在科技日新月异的今天&#xff0c;编程机器人方阵作为自动化和智能化的杰出代表&#xff0c;吸引了无数人的目光。那么&#xff0c;这些机器人方阵究竟是如何进行编程的呢&#xff1f;本文将从四个方面、五个方…

vulnhub靶场之FunBox-11

一.环境搭建 1.靶场描述 As always, its a very easy box for beginners. Add to your /etc/hosts: funbox11 This works better with VirtualBox rather than VMware. 2.靶场下载 https://www.vulnhub.com/entry/funbox-scriptkiddie,725/ 3.靶场启动 二.信息收集 1.寻找靶…

1028 - 输入一个三位数,把个位和百位对调后输出

问题描述 输入一个三位自然数&#xff0c;然后把这个数的百位数与个位数对调&#xff0c;输出对调后的数。 输入 输入一行&#xff0c;只有一个整数 x(100≤x≤999) 。 输出 输出只有一行&#xff0c;包括 1 个整数。 样例 输入 123 输出 321 输入 120 输出 21 …

通过腾讯云TDSQL TCPTCE(MySQL版)认证考试秘籍宝典

腾讯云TDSQL(MySQL版)交付运维高级工程师TCCP证书展示 腾讯云TDSQL(MySQL版)交付运维专家TCCE考试成绩、证书展示 认证类型与级别 TCCA:入门级(初级) TCCP:高级(中级) TCCE:专家级(高级) 考试形式 考试是在线考试&#xff0c;考生需要在腾讯云大学官网上完成。 腾讯云TDSQ…

LabVIEW项目中的常见电机及其特点分析

在LabVIEW项目中&#xff0c;电机的选择对系统的性能和应用效果至关重要。常见电机类型包括直流电机&#xff08;DC Motor&#xff09;、步进电机&#xff08;Stepper Motor&#xff09;、交流感应电机&#xff08;AC Induction Motor&#xff09;和无刷直流电机&#xff08;BL…

mongosh常用命令详解及如何开启MongoDB身份验证

目录 Mongosh常用命令介绍 连接到MongoDB实例 基本命令 查看当前数据库 切换数据库 查看所有数据库 查看当前数据库中的集合 CRUD操作 插入文档 查询文档 更新文档 删除文档 替换文档 索引操作 创建索引 查看索引 删除索引 聚合操作 数据库管理 创建用户 …

手把手教你软著申请(带视频+包括所有模板附赠软著申请软件)

基于前面的这个软件&#xff0c;这一次我沉淀两日重新归来&#xff01; 小唐读取软件全新升级&#xff01; 现在我们开始把我们软著申请流程重新走一遍&#xff01; 要不&#xff1f;你也来申请一张软著&#xff1f; 1.中国版权保护中心注册 1.1注册 大家在这个网址处写好自…

RedisConnectionException: Unable to connect to localhost/<unresolved>:6379

方法一&#xff1a;删除配置密码选项 一般是因为你在启动redsi服务的时候没有以指定配置文件启动 把application.yml文件中的redis密码注释掉 方法二 以指定配置文件启动 这样就不用删除yml文件中密码的选项了 在redis,windows.conf 中找到requirepass&#xff0c;删除掉前…

面试官:聊聊 nextTick

前言 在最近的面试中,不少面试官叫我聊聊 nextTick,nextTick 是个啥,这篇文章咱来好好聊聊! 我的回答 nextTick 是官方提供的一个异步方法,用于在 DOM 更新之后执行回调。正好在我的项目中用到了,就拿它来形容一下,大概的场景是渲染一个列表,每次点击按钮就会往列表后…

【JavaSE复习】基础、面向对象

JavaSE复习 1.Java入门1.1 cmd常见命令1.2 JDK下载和安装1.3 JRE和JDK 2.基础语法2.1 注释和关键字2.2 常量2.3 变量2.4 数据类型2.4.1 基本数据类型2.4.2 引用数据类型 2.5 IDEA 的下载和安装 3. 运算符3.1 算数运算符3.2 数据类型转换3.2.1 隐式转换3.2.2 强制转换 3.3 自增自…

【Matlab】CNN-LSTM分类 卷积神经网络-长短期记忆神经网络组合模型(附代码)

资源下载&#xff1a; https://download.csdn.net/download/vvoennvv/89466499 分类算法资源合集&#xff1a;https://download.csdn.net/download/vvoennvv/89466519 目录 Matlab SVM支持向量机分类算法 Matlab RF随机森林分类算法 Matlab RBF径向基神经网络分类算法 Ma…