从决策树到GBDT、随机森林

何为决策树

决策树(Decision Tree),它是一种以树形数据结构来展示决策规则和分类结果的模型,作为一种归纳学习算法,其重点是将看似无序、杂乱的已知数据,通过某种技术手段将它们转化成可以预测未知数据的树状模型,每一条从根结点(对最终分类结果贡献最大的属性)到叶子结点(最终分类结果)的路径都代表一条决策的规则

简单来说,它是一种常用的机器学习算法,主要用于分类和回归任务。它通过树形结构来展示决策规则和分类结果。每个节点代表一个特征,每个分支代表该特征的一个可能取值,而每个叶节点则对应一个分类或回归结果。
下面图片是一个小栗子,假设你是银行的柜员,正在做要不要向一个客户发放贷款的决策,有目前的条件信息:
在这里插入图片描述
在基本概念中,
根节点:树的起始点,包含所有数据。
内部节点:根据某个特征对数据进行划分。
(是否拥有房产、是否已婚等)
叶节点:最终的分类或回归结果。(能否偿还贷款)

优缺点

在这里插入图片描述
决策树详细解释:决策树原理详解(无基础的同样可以看懂)

由树的并行计算考虑方法

GBDT (Gradient Boosting Decision Tree)

梯度提升决策树
一个例子:想象你有一个团队,每个人都擅长解决问题,但每个人开始时只能解决问题的一小部分。这个团队的目标是一起解决一个复杂的问题。

第一步:团队中的第一个成员会给出他的答案,但可能不太准确,只是一个初步的尝试。

第二步:接下来,团队中的第二个人并不是直接给出自己的答案,而是去观察第一个人的错误,看看问题在哪里没有解决好,然后他会专注于纠正这些错误。

第三步:接着,第三个人会看第二个人的工作,继续纠正前面两个人没解决好的地方。

后续步骤:这样一轮接一轮,越来越多的人加入,每个人都专注于纠正前面人的错误,最终整个团队就能得到一个非常准确的答案。

在GBDT中,这些“团队成员”就是一棵棵决策树。每一棵树都试图改进前一棵树的错误预测。最终,通过累积多棵树的结果,模型能够变得非常强大和准确。

所以,GBDT的核心思想就是:“每次学习都试着改正之前的错误”,这样一步步地提升模型的预测能力。

GBDT 是一种基于集成学习的机器学习算法,它通过将多个决策树模型组合起来,逐步提升模型的预测性能。其工作原理是逐步构建多个弱学习器(通常是简单的决策树),并且每一棵新的树都是为了纠正前一棵树预测中的误差。

核心概念包括:

决策树:每一棵树是一个简单的模型,能够对数据进行分类或回归预测,但单棵树的预测能力有限。

集成学习:GBDT 是一种集成方法,它不是用一棵树来做预测,而是用许多棵树的组合。通过集成多个弱学习器,可以得到一个强大的预测模型。

梯度提升:在每一轮迭代中,GBDT 会根据当前模型的预测误差,计算出残差(即预测值和真实值之间的差异)。新增加的树是为了拟合这些残差,从而逐步减小整体误差。这里的“梯度”指的是用损失函数的梯度(方向和大小)来指导模型的改进。

损失函数:GBDT 最常用的损失函数是平方误差(用于回归任务)或对数似然函数(用于分类任务)。算法通过最小化损失函数,逐渐提高模型的预测精度。

相对应的数学公式
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

随机森林

随机森林(Random Forest)是一种常见的并行计算解决方案。随机森林通过构建多个决策树并将它们的结果进行集成来提高模型的准确性和稳定性。每棵树都是在不同的数据子集和特征子集上独立训练的,这使得随机森林非常适合并行计算。

随机森林(Random Forest)是一种集成学习算法,它通过构建多个决策树来提高模型的准确性和稳定性。它与梯度提升决策树(GBDT)的不同之处在于,随机森林通过并行训练多棵树,然后对每棵树的输出取平均值或多数投票来做最终预测。

1.训练集的随机采样(Bootstrap Sampling):
在训练过程中,随机森林对训练数据集进行多次随机采样,使用有放回的方式。每次采样得到的子集称为“Bootstrap样本”,这意味着每棵树的训练数据集都是从原始数据集中随机抽取的。

比如,如果原始数据集有 n 个样本,每次我们从中随机抽取 n 个样本(可能重复),构建每棵树的训练集。

效果:通过采样不同的数据集,每棵树看到的数据略有不同,增强了模型的多样性,避免了过拟合。
2. 构建每棵决策树:
每棵决策树是一个独立的模型,它会在随机抽样的 Bootstrap 样本上训练,但随机森林在构建树时还引入了另一层随机性:特征随机选择。

在每个节点进行分裂时,随机森林不会考虑所有特征,而是从总特征集中随机选择 m 个特征(通常
m<d,其中 d 是总特征数)。然后仅在这些随机选择的特征中找到最佳分裂点。

效果:通过引入特征的随机性,树之间的相关性减小,使得每棵树更独立,增强模型的鲁棒性。
3. 决策树的训练:
每棵树通过标准的决策树算法来构建,树会不断分裂节点,直到满足某个终止条件(如达到最大深度或叶节点中样本数量少于某个阈值)。

区别:在随机森林中,决策树通常是“完全生长”的,即每棵树通常会深度生长,不进行剪枝,这让每棵树有可能是高偏差但低方差的模型。

4.预测输出:
在这里插入图片描述
5. 整体流程:
随机森林的核心思想是通过构建多个独立的决策树,并结合树的预测结果,来提高模型的准确性、稳健性,并减少过拟合。它利用了“模型集成”的思想——每棵树单独可能是弱学习器,但把它们结合起来就能形成一个强大的模型。
6. Out-of-Bag (OOB) 估计:
由于每棵树只使用部分数据进行训练,剩下的未被采样的数据可以用来作为验证集。这些数据称为袋外数据(OOB数据)。通过在 OOB 数据上评估模型的性能,可以近似得到模型的误差,不需要专门的验证集。

在这里插入图片描述

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

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

相关文章

以题为例浅谈反序列化漏洞

什么是反序列化漏洞 反序列化漏洞是基于序列化和反序列化的操作&#xff0c;在反序列化——unserialize()时存在用户可控参数&#xff0c;而反序列化会自动调用一些魔术方法&#xff0c;如果魔术方法内存在一些敏感操作例如eval()函数&#xff0c;而且参数是通过反序列化产生的…

三菱FX5U CPU模块的初始化“(格式化PLC)”

1、连接FX5U PLC 1、使用以太网电缆连接计算机与CPU模块。 2、从工程工具的菜单选择[在线]中[当前连接目标]。 3、在“简易连接目标设置 Connection”画面中&#xff0c;在与CPU模块的直接连接方法中选择[以太网]。点击[通信测试]按钮&#xff0c;确认能否与CPU模块连接。 FX5…

黑马头条day3-2 自媒体文章管理

前边还有一个 素材列表查询 没什么难度 就略过了 查询所有频道和查询自媒体文章也是和素材列表查询类似 就是普通的查询 所以略过了 文章发布 这个其实挺复杂的 一共三张表 一个文章表 一个素材表 一个文章和素材的关联表 区分修改与新增就是看是否存在id 如果是保存草稿…

数据结构和算法之树形结构(3)

文章出处&#xff1a;数据结构和算法之树形结构(3) 关注码农爱刷题&#xff0c;看更多技术文章&#xff01;&#xff01; 四、平衡二叉树(接前篇) 上一章节讲到为了避免二叉查找树退化成链表后的极度不平衡带来的低效率而衍生出了平衡二叉树&#xff0c;平衡二叉树的严格定义…

力扣上刷题之C语言实现-Days1

一. 简介 本文记录一下力扣的逻辑题。主要是数组方面的&#xff0c;使用 C语言实现。 二. 涉及数组的 C语言逻辑题 1. 两数之和 给定一个整数数组 nums 和一个整数目标值 target&#xff0c;请你在该数组中找出 和为目标值 target的那 两个 整数&#xff0c;并返回它们的…

vmware 虚拟机多屏幕或添加屏幕

vmware 虚拟机多屏幕或添加屏幕 前置条件 vmware 安装 vmware tools 虚拟机系统支持多屏幕 物理上有至少两个屏幕&#xff0c;就是物理机上接至少一个屏幕 方法 虚拟机上点设置&#xff0c;需要在虚拟机关机时进行 ctrl alt enter 让当前虚拟机全屏 鼠标移动到屏幕虚拟机…

双路创新深度学习!TCN-Transformer+LSTM多变量时间序列预测(Matlab)

双路创新深度学习&#xff01;TCN-TransformerLSTM多变量时间序列预测&#xff08;Matlab&#xff09; 目录 双路创新深度学习&#xff01;TCN-TransformerLSTM多变量时间序列预测&#xff08;Matlab&#xff09;效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab…

Vue使用Vue Router路由:通过URL传递与获取参数

Vue Router 路由实际上就是一种映射关系。例如&#xff0c;多个选项卡之间的切换就可以使用路由功能来实现。在切换时&#xff0c;根据鼠标的点击事件显示不同的页面内容&#xff0c;这相当于事件和事件处理程序之间的映射关系。在实际的开发中&#xff0c;经常需要通过URL来传…

Invalid Executable The executable contains bitcode

Invalid Executable The executable contains bitcode xcode世界xcode16后&#xff0c;打包上传testflight时三方库报错&#xff1a;Invalid Executable - The executable ***.app/Frameworks/xxx.framework/xxx contains bitcode. 解决方案&#xff1a; 执行一下指令删除该f…

JavaScript中Windows对象下的属性和方法

1.Windows对象概念 所有的浏览器都支持Windows对象。它表示浏览器窗口 2.Boom概念 Boom&#xff1a;是指浏览器对象模型&#xff0c;它使javaScript有能力与浏览器进行对话 3.DOM概念 DOM&#xff1a;是指文档对象模型&#xff0c;通过它可以访问HTML文档中的所有元素 HT…

导入时,Excel模板不被下载

问题描述 提示&#xff1a;这里描述项目中遇到的问题&#xff1a; 这是个SSM项目&#xff0c;以前经常遇到这个问题&#xff0c;今天有幸记录下来 [ERROR][o.a.s.r.StreamResult] Can not find a java.io.InputStream with the name [downLoadFile] in the invocation stack…

多数元素-简单

169. 多数元素 - 力扣&#xff08;LeetCode&#xff09; 【LeetCode 每日一题】169. 多数元素 | 手写图解版思路 代码讲解_哔哩哔哩_bilibili c为计数器&#xff0c;代表当前候选人的票数 v为当前候选人 x为遍历的各候选人得票 分三种情况&#xff1a; 第一种&#xff0c;c…

MFC - 复杂控件_1

前言 各位师傅大家好&#xff0c;我是qmx_07&#xff0c;今天给大家讲解复杂控件的相关知识点 复杂控件 进度条 绘图准备: 调整windows窗口大小、设置 Progress Control 进度条设置Button 按钮 添加进度条变量 m_Progress,通过按钮触发 void CMFCApplication2Dlg::OnBnCl…

C++ set 和 map学习

一、set(multiset)的基本知识和使用 set也是一种我们直接可以使用的容器&#xff0c;使用应该包含 #include <set> 这个头文件。此处暂且不讨论其底层&#xff0c;只探讨set如何使用即可。 我们看到&#xff0c;set 的模板参数有三个&#xff0c;第一个就是其存储的数据…

【操作系统强化】王道强化一轮笔记

第一章 计算机系统概述 考点1 操作系统的概念、特征和功能 1. 2. 考点2 内核态与用户态 1. 2.用户态和内核态之间的切换本质上就是应用程序和操作系统对CPU控制器的切换 考点3 中断和异常 1. 2. 考点4 系统调用 1. 2. 3.C 考点5 操作系统引导 1. 2. ①磁盘的物理格式化&…

ERNIESpeed-128K在线智能聊天机器人项目(附源码)

本项目是基于百度千帆的智能聊天模型ERNIESpeed-128K开发的 一、技术栈 后端&#xff1a;java8springboot2.6.13 数据库&#xff1a;MongoDB 前端&#xff1a;vue2element-uimarked&#xff08;md格式&#xff09; 二、MongoDB与对话存储的设计 使用MongoDB来储存对话&am…

戎易大数据 | 数据分析实操篇:基于MySQL和Tableau的淘宝用户购物行为数据分析

本文来源公众号“戎易大数据”&#xff0c;仅用于学术分享&#xff0c;侵权删&#xff0c;干货满满。 原文链接&#xff1a;数据分析实操篇&#xff1a;基于MySQL和Tableau的淘宝用户购物行为数据分析 1项目介绍 为提高平台GMV和实现精细化运营&#xff0c;本项目首先使用My…

领夹麦克风哪个品牌好,无线领夹麦克风品牌排名,麦克风品牌大全

无线领夹麦克风因其便携性和隐蔽性&#xff0c;越来越受到演讲者和表演者的青睐。但是&#xff0c;随着市场上品牌和型号的增多&#xff0c;质量也变得参差不齐。许多用户在选购时&#xff0c;会因为缺乏了解而选择到性能不佳的产品&#xff0c;影响声音的清晰度和稳定性。下面…

预计2030年全球半导体用超高纯氢气市场规模将达到2.5亿美元

超高纯度氢气是半导体制造行业使用的关键气体&#xff0c;其纯度通常为 99.999% (5N) 或更高。这种纯度水平对于避免引入可能损害半导体器件性能和可靠性的杂质至关重要。在半导体生产中&#xff0c;超高纯度氢气用于化学气相沉积 (CVD)、外延生长、退火和表面清洁等关键工艺。…

java基础(2)方法的使用

目录 1.前言 2.正文 2.1方法的定义 2.2方法的调用过程 2.3方法的实参与形参 2.3.1形参 2.3.2实参 2.3.3参数传递 2.4方法的重载 3.小结 1.前言 哈喽大家好啊&#xff0c;今天博主继续带领大家学习java的基本语法&#xff0c;java的基础语法部分打算用六到七篇博文完…