机器学习算法(9)——集成技术(Bagging——随机森林分类器和回归)

一、说明

        在这篇文章,我将向您解释集成技术和著名的集成技术之一,它属于装袋技术,称为随机森林分类器和回归

        集成技术是机器学习技术,它结合多个基本模块和模型来创建最佳预测模型。为了更好地理解这个定义,我们需要退一步考虑机器学习和模型构建的最终目标。一旦我们对此有了清晰的认识,我们就可以深入研究具体的例子以及首选集成模型的原因。在上一篇文章中,我们学习了决策树。

机器学习算法(8)——决策树算法

在本文中,我将重点讨论决策树的用途。决策树是最强大的之一......

向开发网

        本文讨论使用决策树来确定个人是否应该在某些天气条件下在户外打高尔夫球。这棵树会考虑各种天气因素,并根据每个因素做出决定或提出另一个问题。例如,如果是阴天,则决定在外面玩,但如果是晴天、雨天或有风,树会在决定是否玩之前询问进一步的问题。

        要创建决策树,我们必须考虑将使用哪些特征来做出决策,以及将使用什么阈值将每个问题分类为是或否答案。我们可以继续添加问题,直到定义是和否类。但如果我们想问自己是否有朋友可以一起玩,会发生什么呢?如果我们有朋友的话,我们每次都会玩。如果没有,我们可能会继续问自己有关天气的问题。通过添加一个附加问题,我们希望更好地定义“是”和“否”类。但我们怎样才能做到这一点呢?

        这里需要用到集成技术。使用集成方法使我们能够考虑决策树样本,确定每次分割时使用哪些特征,并根据样本决策树的聚合结果做出最终预测器。这种方法比仅依靠一棵决策树来做出最终决策更可靠。在 Esemble 技术中,有 2 种技术。

  • 套袋技术
  • 升压技术

二、装袋技术如何发挥作用?

        Bagging 也称为引导聚合,通过使用多个模型训练数据集来获得更准确的输出。这个主题特别重要,因为许多公司现在在数据分析中使用这些技术。

        假设我们有一个特定的问题陈述,并且有一个名为 D 的数据集。在这个特定的数据集中,我们将创建几个基本模型(M1、M2、M3 …… Mn)并使用它们来创建基于多个的学习器。对于每个模型,我们将向M1 模型提供小于数据集中记录数(n)的数据集样本(D')。我们将使用行采样和每个模型的替换来提供数据。对于下一个模型,我们将重复相同的过程,我们将重新采样记录并将其提供给模型。每个模型都会有一组不同的数据。在向模型提供数据后,他们将接受数据训练。将对组中的所有模型重复此过程。

完成训练后,我们将使用测试数据集中的新数据进行预测。对于二元分类,我们将“测试 D”数据发送到模型 1。如果模型1输出1,模型2输出0,模型3输出1,模型Mn输出1,我们将使用投票分类器来组合测试数据的模型的输出(为1)。获得多数票的输出将被考虑。通过使用带替换的行采样和投票分类器,我们将组合模型的输出以获得最终结果。这就是套袋技术的工作原理。

注意:对于回归问题,我们可以将输出均值作为最终结果。

在装袋技术中,我们使用两种算法,

  • 随机森林分类器
  • 随机森林回归

三、随机森林分类器和随机森林回归

        自举随机森林算法将集成学习方法与决策树框架相结合,从数据中创建多个随机抽取的决策树,对结果进行平均以输出新结果,这通常会导致强大的预测/分类。

        让我向您展示一些示例,以帮助您了解随机如何处理数据集。在bagging中,我们使用多个基学习器模型,例如决策树1、决策树2、决策树3……决策树Mn(这里我们将用4个模型来解释)。在随机森林中,我们使用决策树来设计这些模型。我们从给定的数据集中采样一些行和列。我们使用带替换的行采样,这意味着我们从数据集中取出一些行( m )并选择一些列( d)作为特征样本。这就是我们如何使用 bagging 为决策树选择行子集。决策树中的记录数始终小于数据集中的记录数。

Number of Records                         : m*d
Number of Rows                            : d
Number of features(columns)               : m
Number of rows selected for row sampling  : d'
Number of features for feature sampling   : nd' < d
n < m

        这里我们有少量记录,因此我们指定其中一些用于训练。然后,我们对这些记录进行采样,并将它们提供给第一个决策树对第二个决策树重复相同的过程,但使用替换采样。当我们进行替换采样时,并非所有记录都会重复 - 相反,会获取一个新样本并将其提供给第二个决策树。在此过程中,某些记录和特征可能会重复,但许多记录会发生变化。对于每个决策树重复此行和特征采样过程,每次使用不同的特征集。

        行采样(RS)+特征采样(FS)

        在给定数据上训练决策树后,它可以准确预测新测试数据的结果。在二元分类问题中,如果决策树给出正(1)输出,我们可以假设它是正(1)。为了做出最终预测,我们使用模型中的多数票。例如,如果模型 1、模型 2 和模型 4 假设输出为 1,则我们假设它为正。

当我们使用多个决策树时,我们需要考虑两个属性。

  • 低偏差
  • 高方差

        如果我们创建一个完整深度的决策树,它将具有低偏差和高方差,并且它将根据我们的训练数据集进行适当的训练。所以训练误差会非常低。

        当决策树由于新的测试数据而产生大量错误时,就会出现高方差。当决策树创建到其完整深度时,就会发生这种情况,称为过度拟合。在随机森林中,使用多个决策树,每个决策树都具有高方差。然而,当使用多数投票组合这些决策树时,高方差将转换为低方差。这是通过在数据集中使用行和特征采样来实现的。通过组合多个决策树的输出,可以降低高方差。

        如果我们有 1000 条记录并更改 200 条记录,这将如何影响输出?

        对输出的影响

        我们目前正在对 200 条记录的每次决策树更改进行行和特征采样。这可确保 200 条记录在决策树之间正确划分。一些记录将进入决策树 2 或 1,但此更改不会显着影响决策树的准确性或输出。这是由于随机森林的高方差特性,它适用于大多数机器学习用例。如果这是一个回归问题,决策树将给出一个连续值,我们可以取所有输出的平均值或特定输出的中位数。

        在随机森林中,特定输出的中值取决于输出的分布和决策树的结构。通常,随机森林的工作原理是查找所有决策树的输出平均值。然而,为了减少方差,我们使用多个决策树、行采样和特征采样。

        随机森林既有分类器又有回归。它们之间的唯一区别是分类器使用多数投票,而回归器找到所有决策树输出的平均值或中值。通过调整超参数(例如决策树的数量),您可以优化随机森林的性能。

        随机森林或决策树是否需要标准化(缩放)?

没有!

  • RF 的本质是收敛和数值精度问题(这些问题有时会影响逻辑回归和线性回归以及神经网络中使用的算法)并不那么重要。因此,您不需要像使用神经网络那样将变量转换为通用尺度。
  • 您不会得到任何回归系数的类似物,回归系数测量每个预测变量与响应之间的关系。因此,您也不需要考虑如何解释这些受可变测量尺度影响的系数。

这就是套袋技术中的随机森林分类器和随机森林回归。在下一篇文章中,我们将学习 Boosting 技术。

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

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

相关文章

大厂算法指南:优选算法 ——双指针篇(下)

大厂算法指南&#xff1a;优选算法 ——双指针篇&#xff08;上&#xff09; 前言&#xff1a;双指针简介一、[611. 有效三角形的个数](https://leetcode.cn/problems/valid-triangle-number/)1.1 算法思路&#xff08;排序 双指针&#xff09;1.2 代码实现 二、[LCR 179. 查找…

win11+RTX 4070Ti+CUDA12.1+cuDNN12.x+pytorch2.1 环境配置(图文教程)

win11RTX 4070TiCUDA12.1cuDNN12.xpytorch2.1 环境配置&#xff08;图文教程&#xff09; 教程基本信息介绍卸载已安装的CUDA和cuDNN安装CUDA与cuDNN安装 Anaconda安装 pytorch测试 pytorch 是否安装成功 教程基本信息介绍 此教程为本人安装记录&#xff0c;仅供参考 本教程时间…

【机器学习】041_模型开发迭代过程

一、模型开发的一般步骤 1. 明确研究问题 确定问题的组成和结果&#xff0c;明晰问题是分类问题还是回归问题 2. 决定系统总体架构 ①理解数据&#xff1a;采集&#xff08;爬取&#xff09;数据&#xff0c;生成&#xff08;导入&#xff09;数据&#xff0c;进行数据清洗…

【数据结构高阶】红黑树

目录 一、红黑树的概念 二、红黑树的性质 2.1 红黑树与AVL树的比较 三、红黑树的实现 3.1 红黑树节点的定义 3.2 数据的插入 3.2.1 红黑树的调整思路 3.2.1.1 cur为红&#xff0c;f为红&#xff0c;g为黑&#xff0c;u存在且为红 3.2.1.2 cur为红&#xff0c;f为红&am…

uniapp iOS离线打包——运行项目到模拟器报错?

运行项目、打包时报错问题 记录个人在开发过程中遇到的相关问题&#xff0c;后续有时间会不定时更新 文章目录 运行项目、打包时报错问题运行到模拟器报错解决方案 打包报错解决方案 运行到模拟器报错 解决方案 选中项目工程 —> Build Settings 滑动底部 —> User-Defi…

【PyTorch】卷积神经网络

文章目录 1. 理论介绍1.1. 从全连接层到卷积层1.1.1. 背景1.1.2. 从全连接层推导出卷积层 1.2. 卷积层1.2.1. 图像卷积1.2.2. 填充和步幅1.2.3. 多通道 1.3. 池化层&#xff08;又称汇聚层&#xff09;1.3.1. 背景1.3.2. 池化运算1.3.3. 填充和步幅1.3.4. 多通道 1.4. 卷积神经…

【Hive】启动beeline连接hive报错解决

1、解决报错2、在datagrip上连接hive 1、解决报错 刚开始一直报错&#xff1a;启动不起来 hive-site.xml需要配置hiveserver2相关的 在hive-site.xml文件中添加如下配置信息 <!-- 指定hiveserver2连接的host --> <property><name>hive.server2.thrift.bin…

基于SpringBoot+JSP+Mysql宠物领养网站+协同过滤算法推荐宠物(Java毕业设计)

大家好&#xff0c;我是DeBug&#xff0c;很高兴你能来阅读&#xff01;作为一名热爱编程的程序员&#xff0c;我希望通过这些教学笔记与大家分享我的编程经验和知识。在这里&#xff0c;我将会结合实际项目经验&#xff0c;分享编程技巧、最佳实践以及解决问题的方法。无论你是…

gitbash下载安装

参考教程 零、下载 官网地址 2.43.0win64 链接&#xff1a;https://pan.baidu.com/s/16urs_nmky7j20-qNzUTTkg 提取码&#xff1a;7jaq 一、安装 图标组件&#xff08;Additional icons&#xff09;&#xff1a;选择是否创建桌面快捷方式&#xff1b;桌面浏览&#xff08;Win…

漏刻有时百度地图API实战开发(8)关键词输入检索获取经纬度坐标和地址

在百度地图中进行关键词输入检索时&#xff1a; 在地图页面顶部的搜索框中输入关键词。点击搜索按钮或按下回车键进行搜索。地图将显示与关键词相关的地点、商家、景点等信息。可以使用筛选和排序功能来缩小搜索范围或更改搜索结果的排序方式。点击搜索结果中的地点或商家&…

oops-framework框架 之 日志管理(七)

引擎&#xff1a; CocosCreator 3.8.0 环境&#xff1a; Mac Gitee: oops-game-kit 注&#xff1a; 作者dgflash的oops-framework框架QQ群&#xff1a; 628575875 Logger 作者dgflash针对于oops-framework封装的日志管理类是通过Logger实现的&#xff0c;接口在框架中的定义&…

docker 一键寻找容器在服务器存储位置

docker ps -a找到容器id/容器名称 docker inspect 容器id/容器名称 | grep UpperDir找出该容器在物理机的位置 inspect作用:查看docker详细信息 cd到UpperDir所指向的地址&#xff0c;找到配置文件并修改,到这后,这个位置和你用exec命令进入容器内看到文件是一致的