【机器学习300问】35、什么是随机森林?

〇、让我们准备一些训练数据

idx0x1x2x3x4y
04.34.94.14.75.50
13.96.15.95.55.90
22.74.84.15.05.60
36.64.44.53.95.91
46.52.94.74.66.11
52.76.74.25.34.81

        表格中的x0到x4一共有5个特征,y是目标值只有0,1两个值说明是一个二分类问题。 

 关于决策树相关的前置知识,我这里还写了几篇文章,大家可以配合本文一起读读哦!

【机器学习300问】28、什么是决策树?icon-default.png?t=N7T8http://t.csdnimg.cn/COF05【机器学习300问】33、决策树是如何进行特征选择的?icon-default.png?t=N7T8http://t.csdnimg.cn/iPcwT【机器学习300问】34、决策树对于数值型特征如果确定阈值?icon-default.png?t=N7T8http://t.csdnimg.cn/AvJZl

一、决策树的局限性

        决策树算法是一种直观且易于理解的机器学习算法,通过一系列的特征测试将数据划分到不同的类别或预测结果中去,尽管他在解释性上具有优势,但存在一些的局限性。

(1)容易过拟合且不稳定

        决策树容易产生复杂的模型结构,尤其是在没有剪枝或者设置最大深度的时候,很容易导致过拟合现象,无法在新数据上得到泛化能力。

        决策树的构建过程对输入数据的微小变化非常敏感,可能会导致生成完全不同的决策边界,这意味着模型可能不稳定,无法很好的处理噪声

(2)决策路径单一且容易忽略冗余特征

        单一决策树依赖于构建过程中选择的特征顺序和分割阈值,这会忽视其他重要的特征无法充分利用所有信息。

        当多个特征高度相关的时候,决策树可能无法有效平衡这些冗余特征的重要性,从而导致过分依赖某个特征,忽视其他同样重要的特征。

二、什么是随机森林?

        随机森林是一种集成学习方法,他就像是一个由多个决策树组成的森林,每个决策树都是一个独立的分类(或者回归)模型。让我们用一个校园活动的比喻来解释它:

        假设有个才艺比赛,评委要决定哪个班级的表演最出色。每个评审只能观看少数几个班级的表演,并且每个评审只专注于表演中的特定方面(例如舞蹈技巧、原创性或服装)。最终,所有评审齐聚一堂,通过投票来决定哪个班级的整体表现最优秀。

        在这个任务中每个评审代表一个决策树,他们的部分观察(基于随机子集的数据和特征)就像单棵决策树的预测,而评审们的投票过程则类似于森林中所有树的预测结果的集成。通过这种方式,随机森林利用整体的智慧和多样性来提升预测的准确性,并且通常比单个决策树更加稳健。

(1)随机森林长什么样子?

        这就是一个随机森林的长相,可以清楚的看到它是由多个(这里是4个)决策树构成的。

(2)随机森林的工作原理

① 每个树的训练样本随机【随机样本抽取】

        在构建每棵决策树时,不是使用全部的训练数据集,而是通过自助采样(bootstrap sampling)创建多个不同的训练数据子集。这样每棵树都是基于不同的训练子集来训练的。

        这样做的好处是:通过随机抽样得到的样本能够较好地代表整个总体。随机抽样允许量化抽样误差,提高估计的精确度和预测的准确性。还能降低统计样本的难度,节省资源。

        上图中我们就随机抽取了四个样本来构建4个不同的决策树:

② 每个树的特征选择随机【随机特征选择】

        在决策树的每次分裂时,不是从所有的特征中选择最佳分裂特征,而是从一个随机选择的特征子集中选择。然后在该子集中找到最优的特征来进行划分。

        这样做的好处是:降低了单个特征对决策树生成的影响,使得模型更加鲁棒,并且能够有效利用大量冗余或相关特征带来的信息。

        上图中我们就随机抽取了不同的特征形成特征子集来构建决策树:

③ 选择合适的方式集成并获得最终结果

  • 分类问题:在预测新样本类别时,每棵决策树都会给出一个预测结果。随机森林采用投票机制来确定最终类别,即多数表决原则——得票最多的类别作为最终预测结果。
  • 回归问题:每棵树输出一个数值预测,最后取这些预测值的平均值作为最终回归预测结果。

三、特征子集的大小怎么选择?

        在随机森林算法中,特征子集的大小,也就是在每次分裂节点时考虑的特征数量,会对模型的性能产生显著影响。选择这个参数的常见方法有两种:

(1)经验法

        很多随机森林实现(例如scikit-learn库)有默认的启发式规则。这些默认设置通常还不错。

  • 对于分类任务,默认设置是总特征数的平方根
  • 对于回归任务,默认设置是总特征数的三分之一

(2)交叉验证法

        利用交叉验证来寻找最佳的特征子集,你可以在一系列值中测试算法性能,选择出最优化模型准确性的特征数量。

更多集成学习的知识,我还写了另一篇文章,希望你能喜欢~

【机器学习300问】36、什么是集成学习?icon-default.png?t=N7T8http://t.csdnimg.cn/a0bz5

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

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

相关文章

为什么HashMap要使用红黑树?

1、典型回答 HashMap 中之所以使用红黑树,是因为红黑树最合适做 HashMap 多节点的数据存储和查询。因为使用二又搜索树在某些情况下会退化为链表,所以它的查询效率可能会存在问题,而使用 AVL 树,在添加或删除时,效率又…

程序员如何利用AI写代码

程序员可以通过多种方式利用AI来辅助编写代码,以下是一些常见的应用场景: 代码补全和语法检查:许多IDE(集成开发环境)和代码编辑器都内置了AI驱动的代码补全和语法检查功能。这些功能可以根据你正在编写的代码上下文&…

SkyTower1靶场练习小白向靶场安装sql语句被过滤万能SQL密码

下载链接: SkyTower: 1 ~ VulnHub 安装: 下载解压后打开vxbox,新建虚拟机,系统选择linux,使用已有虚拟硬盘文件 选择解压后的vdi文件 后直接创建 设置中的网络链接模式根据自己情况定 我这里选择的是桥接模式 完成后直…

Ubuntu 虚拟机安装

最小化安装后常用工具 sudo apt-get install vim# ifconfig apt install net-tools # nload apt install nload # 很多都要用到 apt install build-essential # 开发相关 apt install gcc gapt install iproute2 ntpdate tcpdump telnet traceroute \ nfs-kernel-server nfs…

kafka集群介绍

介绍 kafka是一个高性能、低延迟、分布式的消息传递系统,特点在于实时处理数据。集群由多个成员节点broker组成,每个节点都可以独立处理消息传递和存储任务。 路由策略 发布消息由key、value组成,真正的消息是value,key是标识路…

【JAVA】JAVA方法的学习和创造

🌈个人主页: Aileen_0v0 🔥热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法|MySQL| ​💫个人格言:“没有罗马,那就自己创造罗马~” 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不…

一起学数据分析_3(模型建立与评估_1)

使用前面清洗好的数据来建立模型。使用自变量数据来预测是否存活(因变量)? (根据问题特征,选择合适的算法)算法选择路径: 1.切割训练集与测试集 import pandas as pd import numpy as np impo…

安装OpenEBS,镜像总是报错ImagePullBackOff或者ErrImagePull的解决方法

按照 KubeSphere 官方文档安装 OpenEBS,镜像总是报错ImagePullBackOff或者ErrImagePull的解决方法 helm 有很多更换 源 的文章,有一些是写更换阿里云的源,但是阿里云的源根本没更新OpenEBS的镜像。 在网上找到1个可用的源: 可用的…

【渗透测试】redis漏洞利用

redis安装及配置 wget http://download.redis.io/releases/redis-3.2.0.tar.gz tar xzf redis-3.2.0.tar.gz cd redis-3.2.0 make cp /root/redis-6.2.6/redis.conf /usr/local/redis/bin/ cd /usr/local/redis/bin/ vi redis.conf #修改内容如下: #protected-mode …

HTML基础:了解CSS的3种创建方法

你好,我是云桃桃。 CSS,即层叠样式表(Cascading Style Sheets),是一种用于描述网页样式和布局的标记语言。它通过定义样式规则来控制网页元素的外观和排版,包括文字大小、颜色、边距、背景等,从…

Java有哪些常用的集合?

1、典型回答 在 Java 中,常用的集合有以下几个: 列表(List):有序集合,可以包含重复元素。常见实现类有 ArrayList、LinkedList、 Vector 等集合(Set):无序集合,不允许包含重复元素。常见实现类有 HashSet、…

【洛谷 P8602】[蓝桥杯 2013 省 A] 大臣的旅费 题解(图论+深度优先搜索+树的直径+链式前向星)

[蓝桥杯 2013 省 A] 大臣的旅费 题目描述 很久以前,T 王国空前繁荣。为了更好地管理国家,王国修建了大量的快速路,用于连接首都和王国内的各大城市。 为节省经费,T 国的大臣们经过思考,制定了一套优秀的修建方案&am…