机器学习算法(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.rhkb.cn/news/214668.html

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

相关文章

[UIM]论文解读:subword Regularization: Multiple Subword Candidates

文章目录 一、完整代码二、论文解读2.1 介绍2.2 NMT2.3 Unigram language model2.4 subword 抽样2.5 效果 三、整体总结 论文&#xff1a;Subword Regularization: Improving Neural Network Translation Models with Multiple Subword Candidates 作者&#xff1a;Taku Kudo 时…

低多边形3D建模动画风格纹理贴图

在线工具推荐&#xff1a; 3D数字孪生场景编辑器 - GLTF/GLB材质纹理编辑器 - 3D模型在线转换 - Three.js AI自动纹理开发包 - YOLO 虚幻合成数据生成器 - 三维模型预览图生成器 - 3D模型语义搜索引擎 当谈到游戏角色的3D模型风格时&#xff0c;有几种不同的风格&#xf…

什么是神经网络的非线性

大家好啊&#xff0c;我是董董灿。 最近在写《计算机视觉入门与调优》&#xff08;右键&#xff0c;在新窗口中打开链接&#xff09;的小册&#xff0c;其中一部分说到激活函数的时候&#xff0c;谈到了神经网络的非线性问题。 今天就一起来看看&#xff0c;为什么神经网络需…

ThinkPHP连接ORACLE数据库教程

目录 概念基本步骤详细操作问题排除参考 概念 要连接Oracle数据库&#xff0c;必须有两个东西&#xff0c;一个PHP官方写的扩展&#xff0c;一个Oracle官方写的客户端PHP是通过扩展去操作oralce客户端连接的服务端数据库&#xff0c;所以两个都不能少&#xff0c;而且版本必须…

P1005 [NOIP2007 提高组] 矩阵取数游戏

网址&#xff1a;P1005 [NOIP2007 提高组] 矩阵取数游戏 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 动态规划和高精度的组合&#xff0c;使我的滨州旋转 最后只得了80&#xff0c;两个测试点超时了 看题解有人是用了int128来做的&#xff0c;明天学一下 我的递归思路和…

MongoDB的分片

本文主要介绍MongoDB的分片。 目录 MongoDB的分片组成分片过程操作步骤注意事项 MongoDB的分片 MongoDB的分片是一种横向扩展数据库的方式&#xff0c;可以将数据分散存储在多台服务器上&#xff0c;从而提高数据库的处理能力和可用性。 组成 MongoDB的分片由三个组成部分组…

Ansible中执行流控制

1.ansible中的迭代循环 创建目录和文件 vim createfile.yaml - name: create file playbook hosts: all tasks: - name: create file file: path: "/mnt/{{item[name]}}" state: …

scala变量与变量类型

1.6 变量与类型&#xff08;重点&#xff09;1.6.1 变量推断1.6.2 多变量定义1.6.3 var和val的区别 1.6.3.1 是否可变 1.6.3.2 延迟加载 1.6 变量与类型&#xff08;重点&#xff09; val修饰的变量&#xff0c;相当于Java中final修饰的变量; // 定义常量s1&#xff0c;使用…

GPIO的使用--USART串口通信--传感器控制数据

目录 一、串口通信 1、概念 2、原理图 3、使用步骤 &#xff08;1&#xff09;寻找串口位置 &#xff08;2&#xff09;确定引脚编号 &#xff08;3&#xff09;编写代码 4、实验结果 实验代码 main.c usart.c usart.h 一、串口通信 1、概念 串行接口是一种可以将…

GPT-4 变懒了?官方回复

你是否注意到&#xff0c;最近使用 ChatGPT 的时候&#xff0c;当你向它提出一些问题&#xff0c;却得到的回应似乎变得简短而敷衍了&#xff1f;对于这一现象&#xff0c;ChatGPT 官方给出了回应。 译文&#xff1a;我们听到了你们所有关于 GPT4 变得更懒的反馈&#xff01;我…

玩转大数据10:深度学习与神经网络在大数据中的应用

目录 1. 引言&#xff1a;深度学习和神经网络在大数据中的重要性和应用场景 2. 深度学习的基本概念和架构 3. Java中的深度学习框架 3.1. Deeplearning4j框架介绍及Java编程模型 3.2. DL4J、Keras和TensorFlow的集成 4. 大数据与深度学习的结合 4.1. 大数据与深度学…

Redis探秘:AOF日志与数据持久性之旅

第1章&#xff1a;引言 大家好&#xff0c;我是小黑&#xff0c;咱们今天来聊聊Redis。你知道吗&#xff0c;Redis作为一个超高效的内存数据库&#xff0c;真的是超级给力。它可以秒速处理数据&#xff0c;让咱们的应用运行得飞快。但是&#xff0c;小黑得告诉你&#xff0c;虽…

Linux进程地址空间

Linux进程地址空间 一.语言上的内存分区1.内存分区的理论说明2.内存分区的代码验证3.一个"奇怪"的现象 二.进程地址空间1.现象解释2.什么是进程地址空间3.页表的权限属性与重新理解写时拷贝4 .为什么要有进程地址空间和页表5.用进程地址空间解释一些问题1.为何进程之…

android 13.0 去掉recovery模式UI操作页面的菜单选项

1.概述 在13.0进行系统rom定制化开发中,在进行一些定制化开发中,会根据需要在进入recovery模式的时候,去掉recovery模式的一些菜单选项, Reboot to bootloader,Enter rescue等菜单项,经过分析得知, 就是在device.cpp去掉一些菜单选项就可以了,接下来就来分析实现相关功…

从Centos-7升级到Centos-Stream-8

如果在正式环境升级&#xff0c;请做好数据备份以及重要配置备份&#xff01;因为升级会造一部分应用被卸载。 注意&#xff1a;升级前请备份好数据&#xff0c;升级可能会导致ssh的root用户无法登陆、网卡名称发生改变、引导丢失无法开机等问题。 1.安装epel源 yum -y install…

Redis生产实战-Redis集群故障探测以及降级方案设计

Redis 集群故障探测 在生产环境中&#xff0c;如果 Redis 集群崩溃了&#xff0c;那么会导致大量的请求打到数据库中&#xff0c;会导致整个系统都崩溃&#xff0c;所以系统需要可以识别缓存故障&#xff0c;限流保护数据库&#xff0c;并且启动接口的降级机制 降级方案设计 …

【EI征稿中|ACM出版】2023 人工智能、系统与网络安全国际学术会议 (AISNS 2023)

2023 人工智能、系统与网络安全国际学术会议 (AISNS 2023&#xff09; 2023 International Conference on Artificial Intelligence, Systems and Network Security 由西南科技大学计算机科学与技术学院主办的2023人工智能、系统与网络安全国际学术会议 (AISNS 2023&#xff…

BUUCTF-[GYCTF2020]FlaskApp flask爆破pin

这道题不需要爆破也可以getshell ssti都给你了 {{((lipsum.__globals__.__builtins__[__import__](so[::-1])[popen]("\x63\x61\x74\x20\x2f\x74\x68\x69\x73\x5f\x69\x73\x5f\x74\x68\x65\x5f\x66\x6c\x61\x67\x2e\x74\x78\x74")).read())}} 但是学习记录一下pin…

【已解决】解决UbuntuKali无法进行SSH远程连接

目录 Ubuntu20.04配置SSH远程连接Kali Linux配置SSH远程连接 Ubuntu20.04配置SSH远程连接 首先更新安装包 sudo apt-get update 下载SSH服务 sudo apt install openssh-server 查看SSH服务 service ssh status 打开 /etc/ssh/sshd_config文件修改配置文件 将PermitRootLog…

秋招春招,我没有拿到一个offer怎么办?

无论是秋招&#xff0c;还是春招&#xff0c;对于应届毕业生来说&#xff0c;都是最佳的拿offer的时机&#xff0c;当然错过了也不是绝境&#xff0c;机会无处不在&#xff0c;只是说校招是最好的机会。希望朋友们重视起来&#xff0c;积极的争取到满意的工作岗位。 从竞争的角…