【机器学习300问】35、什么是随机森林?
〇、让我们准备一些训练数据
id | x0 | x1 | x2 | x3 | x4 | y |
0 | 4.3 | 4.9 | 4.1 | 4.7 | 5.5 | 0 |
1 | 3.9 | 6.1 | 5.9 | 5.5 | 5.9 | 0 |
2 | 2.7 | 4.8 | 4.1 | 5.0 | 5.6 | 0 |
3 | 6.6 | 4.4 | 4.5 | 3.9 | 5.9 | 1 |
4 | 6.5 | 2.9 | 4.7 | 4.6 | 6.1 | 1 |
5 | 2.7 | 6.7 | 4.2 | 5.3 | 4.8 | 1 |
表格中的x0到x4一共有5个特征,y是目标值只有0,1两个值说明是一个二分类问题。
关于决策树相关的前置知识,我这里还写了几篇文章,大家可以配合本文一起读读哦!
【机器学习300问】28、什么是决策树?http://t.csdnimg.cn/COF05【机器学习300问】33、决策树是如何进行特征选择的?
http://t.csdnimg.cn/iPcwT【机器学习300问】34、决策树对于数值型特征如果确定阈值?
http://t.csdnimg.cn/AvJZl
一、决策树的局限性
决策树算法是一种直观且易于理解的机器学习算法,通过一系列的特征测试将数据划分到不同的类别或预测结果中去,尽管他在解释性上具有优势,但存在一些的局限性。
(1)容易过拟合且不稳定
决策树容易产生复杂的模型结构,尤其是在没有剪枝或者设置最大深度的时候,很容易导致过拟合现象,无法在新数据上得到泛化能力。
决策树的构建过程对输入数据的微小变化非常敏感,可能会导致生成完全不同的决策边界,这意味着模型可能不稳定,无法很好的处理噪声。
(2)决策路径单一且容易忽略冗余特征
单一决策树依赖于构建过程中选择的特征顺序和分割阈值,这会忽视其他重要的特征无法充分利用所有信息。
当多个特征高度相关的时候,决策树可能无法有效平衡这些冗余特征的重要性,从而导致过分依赖某个特征,忽视其他同样重要的特征。
二、什么是随机森林?
随机森林是一种集成学习方法,他就像是一个由多个决策树组成的森林,每个决策树都是一个独立的分类(或者回归)模型。让我们用一个校园活动的比喻来解释它:
假设有个才艺比赛,评委要决定哪个班级的表演最出色。每个评审只能观看少数几个班级的表演,并且每个评审只专注于表演中的特定方面(例如舞蹈技巧、原创性或服装)。最终,所有评审齐聚一堂,通过投票来决定哪个班级的整体表现最优秀。
在这个任务中每个评审代表一个决策树,他们的部分观察(基于随机子集的数据和特征)就像单棵决策树的预测,而评审们的投票过程则类似于森林中所有树的预测结果的集成。通过这种方式,随机森林利用整体的智慧和多样性来提升预测的准确性,并且通常比单个决策树更加稳健。
(1)随机森林长什么样子?
这就是一个随机森林的长相,可以清楚的看到它是由多个(这里是4个)决策树构成的。
(2)随机森林的工作原理
① 每个树的训练样本随机【随机样本抽取】
在构建每棵决策树时,不是使用全部的训练数据集,而是通过自助采样(bootstrap sampling)创建多个不同的训练数据子集。这样每棵树都是基于不同的训练子集来训练的。
这样做的好处是:通过随机抽样得到的样本能够较好地代表整个总体。随机抽样允许量化抽样误差,提高估计的精确度和预测的准确性。还能降低统计样本的难度,节省资源。
上图中我们就随机抽取了四个样本来构建4个不同的决策树:
② 每个树的特征选择随机【随机特征选择】
在决策树的每次分裂时,不是从所有的特征中选择最佳分裂特征,而是从一个随机选择的特征子集中选择。然后在该子集中找到最优的特征来进行划分。
这样做的好处是:降低了单个特征对决策树生成的影响,使得模型更加鲁棒,并且能够有效利用大量冗余或相关特征带来的信息。
上图中我们就随机抽取了不同的特征形成特征子集来构建决策树:
③ 选择合适的方式集成并获得最终结果
- 分类问题:在预测新样本类别时,每棵决策树都会给出一个预测结果。随机森林采用投票机制来确定最终类别,即多数表决原则——得票最多的类别作为最终预测结果。
- 回归问题:每棵树输出一个数值预测,最后取这些预测值的平均值作为最终回归预测结果。
三、特征子集的大小怎么选择?
在随机森林算法中,特征子集的大小,也就是在每次分裂节点时考虑的特征数量,会对模型的性能产生显著影响。选择这个参数的常见方法有两种:
(1)经验法
很多随机森林实现(例如scikit-learn库)有默认的启发式规则。这些默认设置通常还不错。
- 对于分类任务,默认设置是总特征数的平方根
- 对于回归任务,默认设置是总特征数的三分之一
(2)交叉验证法
利用交叉验证来寻找最佳的特征子集,你可以在一系列值中测试算法性能,选择出最优化模型准确性的特征数量。
更多集成学习的知识,我还写了另一篇文章,希望你能喜欢~
【机器学习300问】36、什么是集成学习?http://t.csdnimg.cn/a0bz5
相关文章:

【机器学习300问】35、什么是随机森林?
〇、让我们准备一些训练数据 idx0x1x2x3x4y04.34.94.14.75.5013.96.15.95.55.9022.74.84.15.05.6036.64.44.53.95.9146.52.94.74.66.1152.76.74.25.34.81 表格中的x0到x4一共有5个特征,y是目标值只有0,1两个值说明是一个二分类问题。 关于决策树相关的前置知识&am…...

用云服务器构建gpt和stable-diffusion大模型
用云服务器构建gpt和stable-diffusion大模型 一、前置知识二、用云端属于自己的聊天chatGLM3step1、项目配置step2、环境配置1、前置知识2、环境配置流程 step3、创建镜像1、前置知识2、创建镜像流程 step4、通过 Gradio 创建ChatGLM交互界面1、前置知识2、创建ChatGLM交互界面…...

备考2024年小学生古诗文大会:历年真题15题练习和独家解析
最近有家长在问如何提高小学生古诗词的知识?如何激发小学生古诗词的学习兴趣?如何提高小学古诗词的学习成绩?如何备考2024年小学生古诗文大会?...我的建议是参加每年一度的小学生古诗词大会(免费参加,无参赛…...

C++之模板
本阶段主要针对C泛型编程和ST技术做详细讲解,探讨C更深层的使用 1.1 模板的概念 模板就是建立通用的模具,大大提高复用性 模板的特点: 模板不可以直接使用,它只是一个框架 模板的通用并不是万能的 1.2 函数模板 C另一种编程思想称为 …...

Ubuntu Flask 运行 gunicorn+Nginx 部署
linux Ubuntu 下运行python 程序出现killed 原因:CPU或内存限制:在华为云上,你可能有CPU或内存使用的限制。例如,如果你使用的是一个固定大小的实例,那么超过该实例的CPU或内存限制可能会导致进程被杀死。 参考&am…...

Tuxera NTFS 2023安装使用教程 Tuxera NTFS破解版 Tuxera NTFS for Mac优惠
对于必须在Windows电脑和Mac电脑之间来回切换的Mac朋友来说,跨平台不兼容一直是一个巨大的障碍,尤其是当我们需要使用NTFS格式的硬盘在Windows和macOS之间共享文件时。因为Mac默认不支持写入NTFS磁盘。 为了解决这一问题,很多朋友会选择很便捷…...

Linux-centos如何搭建yum源仓库
1.本地搭建(无需连接外网) 1.1检查网络配置,及网络连接 打开虚拟机,点击【编辑——虚拟网络编辑器】 点击【仅主机模式】查看子网段是否和局内IP匹配 进入局内,查看网络IP是否在你上述设置的网段内,如果不…...

Vue组件中引入jQuery
两种在vue中引入jQuery的方式 1、普通html中使用jQuery 将jQuer的文件导入到项目中,然后直接使用<script src"jQuery.js"></script>即可。 <script src"jQuery.js"></script> 2、vue组件中使用jQuery 安装依赖 c…...

设计模式 --3:装扮模式
结构图 代码 #include<iostream>using namespace std;class person { public:person() {};person(string name) { this->name name; }virtual void show() {cout << "装扮的:" << this->name << endl;} private:string name; }; //装…...

element-plus中的表单校验
1. 简单校验: 1.1 在script中给出校验规则对象,主要属性名与form对象的属性名一致1.2 一个字段的校验规则可以有多个,值是一个数组,数组中的一个对象就是一条校验规则1.3 主要校验规则: 1.3.1 required:是…...

ros小问题之roslaunch tab补不全新增的功能包
在学习Gazebo这一章节时,通过catkin_create_pkg命令创建了仿真机械臂所需的软件包,创建完成后里面的内容直接拷贝了教材配套的文件,但在roslaunch时,摁tab键补不全新加的包。 重新source catkin_ws/devel/setup.bash不起作用&…...

C#常见的.Net类型(二)
目录 一、在集合中存储多个对象理解集合的选择1.列表2.字典3.堆栈4.队列5.集 二、使用Span、索引和范围Span索引范围 处理类型和属性1.特性2.创建自定义特性3.反射 一、在集合中存储多个对象 处理集合的常见类型 类型描述List动态大小的数组,可以按索引访问Dictio…...

oracle临时表空间不释放
项目报错 nested exception is java.sql.SQLException: ORA-01652: unable to extend temp segment by 128 in tablespace TEMP 原因是临时表空间满了,临时表空间一直增长,未释放导致临时表空间使用率100%。 查询临时表空间使用率 --临时表空间利用率…...

Chapter 13 Techniques of Design-Oriented Analysis: The Feedback Theorem
Chapter 13 Techniques of Design-Oriented Analysis: The Feedback Theorem 从这一章开始讲负反馈Control系统和小信号建模. 13.2 The Feedback Theorem 首先介绍 Middlebrook’s Feedback Theorem 考虑下面负反馈系统 传输函数 Guo/ui G ( s ) u o u i G ∞ T 1 T G…...

科研学习|论文解读——美国政治经济中的权力:网络分析(JASIST, 2019)
论文原题目 Power in the U.S. political economy: A network analysis 摘要 美国政治经济的许多特征产生于大型政治和经济机构之间的互动,然而我们对它们的互动性质和这些机构之间的权力分配知之甚少。在本文中,对总部设在美国的组织的网络进行了详细的…...

常用的git命令
一、常用的git命令 1. 配置 git config --local user.name "xxx" ---仅对当前Git仓库有效。配置信息将保存在当前Git仓库的 .git/config 文件中 local优先级最高,会覆盖其他范围的相同配置 git config --global user.email "xxx" ---全局…...

【AI】用iOS的ML(机器学习)创建自己的AI App
用iOS的ML(机器学习)创建自己的AI App 目录 用iOS的ML(机器学习)创建自己的AI App机器学习如同迭代过程CoreML 的使用方法?软件要求硬件开始吧!!构建管道:设计和训练网络Keras 转 CoreML将模型集成到 Xcode 中结论推荐超级课程: Docker快速入门到精通Kubernetes入门到…...

远程调用初体验笔记
远程调用初体验笔记 微服务架构通常将系统拆分成多个独立的服务单元,每个服务单元都专注于实现特定的业务功能。当一个服务需要使用另一个服务提供的功能时,就可以通过远程调用来实现。 使用步骤 1.步骤 Spring给我们提供了一个RestTemplate工具&#…...

反无人机电子护栏:原理、算法及简单实现
随着无人机技术的快速发展,其在航拍、农业、物流等领域的应用日益广泛。然而,无人机的不规范使用也带来了安全隐患,如侵犯隐私、干扰航空秩序等。为了有效管理无人机,反无人机电子护栏技术应运而生。 目录 一、反无人机电子护栏…...

Java项目利用Redisson实现真正生产可用高并发秒杀功能 支持分布式高并发秒杀
Java中的高并发秒杀场景下我们可以使用redisson来实现高并发秒杀功能, 以下就是一个可用于生产环境的高并发秒杀示例代码: pom依赖 <!-- https://mavenlibs.com/maven/dependency/org.redisson/redisson --><dependency><groupId>org.redisson</groupId&…...

0104行列式的性质-行列式-线性代数
记 D ∣ a 11 a 12 ⋯ a 1 n a 21 a 22 ⋯ a 2 n ⋯ ⋯ ⋯ a n 1 a n 2 ⋯ a n n ∣ D\begin{vmatrix}a_{11}&a_{12}&\cdots &a_{1n}\\a_{21}&a_{22}&\cdots&a_{2n}\\\cdots&\cdots&&\cdots\\a_{n1}&a_{n2}&\cdots&a_{nn}\en…...

k8s HPA 自动伸缩机制 (配置,资源限制,)
目录 一、概念 核心概念 工作原理 HPA 的配置关键参数 关键组件 使用场景 注意事项 如何确保程序稳定和服务连续 二、metrics-server 部署 metrics-server 准备 metrics-server 镜像: 使用 Helm 安装 metrics-server: 配置 metrics-server: 安装 metrics-server: …...

vulhub中GIT-SHELL 沙盒绕过漏洞复现(CVE-2017-8386)
GIT-SHELL 沙盒绕过(CVE-2017-8386)导致任意文件读取、可能的任意命令执行漏洞。 测试环境 为了不和docker母机的ssh端口冲突,将容器的ssh端口设置成3322。本目录下我生成了一个id_rsa,这是ssh的私钥,连接的时候请指…...

SpringBoot+vue3打造企业级一体化SaaS系统
SpringBootvue3打造企业级一体化SaaS系统 简介: 全面提升前后端技术水平,独立完成全栈项目开发能力,快速进击全栈工程师,最终在面试中脱颖而出。整合后端主流技术(Spring Boot、物理数据库隔离、加载动态权限、多…...

探讨TCP的可靠性以及三次握手的奥秘
🌟 欢迎来到 我的博客! 🌈 💡 探索未知, 分享知识 !💫 本文目录 1. TCP的可靠性机制1.2可靠性的基础上,尽可能得提高效率 2. TCP三次握手过程3. 为何不是四次握手? 在互联网的复杂世界中,TCP&am…...

openai常见的两个错误:BadRequestError和OpenAIError
错误1:openai.OpenAIError: The api_key client option must be set either by passing api_key..... 在通过openai创建客户端必须要设置api key,如果你事先已经在本机的环境中设置未起效可以手动设置,注意手动设置时不要用下面的形式 import openai f…...

2核4g服务器够用吗?
2核4G服务器够用吗?够用。阿腾云以2核4G5M服务器搭建网站为例,5M带宽下载速度峰值可达640KB/秒,阿腾云以搭建网站为例,假设优化后平均大小为60KB,则5M带宽可支撑10个用户同时在1秒内打开网站,并发数为10&am…...

数据仓库数据分层详解
数据仓库中的数据分层是一种重要的数据组织方式,其目的是为了在管理数据时能够对数据有一个更加清晰的掌控。以下是数据仓库中的数据分层详解: 原始数据层(Raw Data Layer):这是数仓中最底层的层级,用于存…...

unity内存优化之AB包篇(微信小游戏)
1.搭建资源服务器使用(HFS软件(https://www.pianshen.com/article/54621708008/)) using System.Collections; using System.Collections.Generic; using UnityEngine;using System;public class Singleton<T> where T : class, new() {private static readonly Lazy<…...

白话模电:3.三极管(考研面试与笔试常考问题)
一、三极管的简单判断 1.判断三极 1)给了图 左边是b,有箭头是e,剩下是c 2)给了电位 b:中间值,e:较近值(离中间值),c:较远值(离中间值) 2.判断流向 bc同向(共同流向“|”或共同流离“|”),e与bc反向 3.判断材料 4.判断类型 5.判断能否构…...