当前位置: 首页 > news >正文

【机器学习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.lryc.cn/news/319567.html

相关文章:

  • 用云服务器构建gpt和stable-diffusion大模型
  • 备考2024年小学生古诗文大会:历年真题15题练习和独家解析
  • C++之模板
  • Ubuntu Flask 运行 gunicorn+Nginx 部署
  • Tuxera NTFS 2023安装使用教程 Tuxera NTFS破解版 Tuxera NTFS for Mac优惠
  • Linux-centos如何搭建yum源仓库
  • Vue组件中引入jQuery
  • 设计模式 --3:装扮模式
  • element-plus中的表单校验
  • ros小问题之roslaunch tab补不全新增的功能包
  • C#常见的.Net类型(二)
  • oracle临时表空间不释放
  • Chapter 13 Techniques of Design-Oriented Analysis: The Feedback Theorem
  • 科研学习|论文解读——美国政治经济中的权力:网络分析(JASIST, 2019)
  • 常用的git命令
  • 【AI】用iOS的ML(机器学习)创建自己的AI App
  • 远程调用初体验笔记
  • 反无人机电子护栏:原理、算法及简单实现
  • Java项目利用Redisson实现真正生产可用高并发秒杀功能 支持分布式高并发秒杀
  • 0104行列式的性质-行列式-线性代数
  • k8s HPA 自动伸缩机制 (配置,资源限制,)
  • vulhub中GIT-SHELL 沙盒绕过漏洞复现(CVE-2017-8386)
  • SpringBoot+vue3打造企业级一体化SaaS系统
  • 探讨TCP的可靠性以及三次握手的奥秘
  • openai常见的两个错误:BadRequestError和OpenAIError
  • 2核4g服务器够用吗?
  • 数据仓库数据分层详解
  • unity内存优化之AB包篇(微信小游戏)
  • 白话模电:3.三极管(考研面试与笔试常考问题)
  • LeetCode 395. 至少有K个重复字符的最长子串