C2-4.3.1 多个决策树——随机森林

C2-4.3.1 多个决策树——随机森林

参考链接

1、为什么要使用多个决策树——随机森林?

  • 决策树的缺点:

A small change in the data can cause a large change in the structure of the decision tree causing instability

即:对数据集 中微小的变化敏感,往往一棵树的结果不是那么理想—— 通过多个决策树的组合,让它对数据变化没那么敏感,得到更加准确的结果

  • 举一个例子:

在下图中,我们仅仅改变了一个训练示例,但是由于这个训练示例的改变,造成了 要拆分的 最高 ‘信息增益’——变成了胡子(原来是耳朵的形状)

所以就变成了右侧的决策树,使得左右两侧变成了完全不同的决策树。——训练一堆不同的决策树往往会得到更好的结果——引出 “随机森林”

在这里插入图片描述

在这里插入图片描述

  • 多个决策树工作原理:
    • 第一个树通过预测——结果是 猫
    • 第二个树通过预测——结果不是 猫
    • 第三个树通过预测——结果是 猫

最终结果预测:取最多的结果——是猫

随机森林是基于树的机器学习算法,该算法利用了多棵决策树的力量来进行决策。顾名思义,它是由一片树木组成的“森林”!

但是为什么要称其为“随机森林”呢?这是因为它是随机创造的决策树组成的森林。决策树中的每一个节点是特征的一个随机子集,用于计算输出。随机森林将单个决策树的输出整合起来生成最后的输出结果。

简单来说:

“随机森林算法用多棵(随机生成的)决策树来生成最后的输出结果。”

img

2、随机森林

  • 随机森林是由很多决策树组成的,不同决策树之间不存在相关性。

  • 当我们执行分类任务时,新的输入样本进入,对森林中的每一棵决策树分别进行判断和分类。每棵决策树都会得到自己的分类结果,而决策树哪个分类结果最多,那么随机森林就会用这个结果作为最终结果。

2.1构建随机森林的 4 个步骤

构建随机森林的 4 个步骤

Ste1:有放回的随机抽样

  • 将样本量为N的样本进行N次放回抽取,每次抽取一个样本,最终形成N个样本。将选取的N个样本作为决策树根节点的样本来训练一棵决策树。决策树。

  • 如下:是有放回的随机抽样的结果

在这里插入图片描述

通过 不同的随机抽样的结果,将选取的N个样本作为决策树根节点的样本来训练一棵决策树。决策树。

不同的随机抽样的 训练集,得到了不同的决策树。

在这里插入图片描述

Step2:随机选取属性,作为分裂节点。

  • 当每个样本有M(比如100个)个属性时,当决策树的每个节点需要分裂时,从这M个属性中随机选择m(10个)个属性,并满足条件m << M。然后从这些中使用一定的策略(如信息增益) m 个属性,选择 1 个属性作为节点的分裂属性

在这里插入图片描述

  • m 的选择通常如下,就是图中的k :

在这里插入图片描述

Step3 :重复步骤2

  • 在决策树形成过程中,每个节点都要按照步骤2进行分裂(很容易理解,如果该节点选择的下一个属性是其父节点刚刚分裂时使用的属性,则该节点已经达到叶子节点,无需继续分裂)。直到不能再分开为止。请注意,在整个决策树的形成过程中没有进行任何修剪。

Step4 : 构建随机森林

  • 根据步骤1~3,创建大量决策树,构成随机森林。

3、随机森林的4个应用方向——(前提:结构化数据)

随机森林的4个应用方向

随机森连——适用于“结构化数据”

随机森林可以用在很多地方:

  1. 离散值的分类
  2. 连续值的回归
  3. 无监督学习聚类
  4. 异常点检测

4、※ XGBoot 增强随机森林

  • 用的特别多,尤其是在Kaggle比赛等或者实际项目中
  • 和 随机森林相比:不同的地方是,随机森林每次都是有放回的抽取(概率是 1/m), 但是 XGBoot 不同,从第二次开始进行针对性的训练。先选取前一轮有错误的数据,再加上随机抽取的数据进行训练。更好的解决问题。

在这里插入图片描述

在这里插入图片描述

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

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

相关文章

vue获取当前系统时间

1.获取当前系统时间时分秒 // 标准时间格式转化为年月日时分秒 export function ssDateTimeFn(timestamp) {if (!timestamp) {return timestamp}// timestamp是整数&#xff0c;否则要parseInt转换,不会出现少个0的情况const time new Date(timestamp)const year time.getFu…

代码随想录算法训练营第15天 | 102. 二叉树的层序遍历 + 226. 翻转二叉树 + 101. 对称二叉树

今日内容 102.层序遍历 226.翻转二叉树 101.对称二叉树 102.二叉树的层序遍历 - Medium 题目链接&#xff1a;力扣-102. 二叉树的层序遍历 给你二叉树的根节点 root &#xff0c;返回其节点值的 层序遍历 。 &#xff08;即逐层地&#xff0c;从左到右访问所有节点&…

2024年软考网络工程师如何备考?考什么?

先看一下这知识点总结图&#xff0c;在备考复习前大致简单了解一遍&#xff01; 网工考试时间安排&#xff1a; 网工每年考两次&#xff0c;5月考试一次&#xff0c;11月考试一次 第一步&#xff1a; 通读教程&#xff08;《网络工程师》&#xff09;&#xff0c;首先对教程中…

Linux学习之网络编程(纯理论)

写在前面 刚刚更新完Linux系统编程&#xff0c;特别推荐大家去看的Linux系统编程&#xff0c;总共44个小时&#xff0c;老师讲的非常好&#xff0c;我是十天肝完的&#xff0c;每天大概看20集&#xff0c;每天还要以写blog的形式来写笔记来总结一下&#xff0c;虽然这十天有点…

交叉编译ARM64架构electron详解

基本介绍 本文主要参考Electron官方文档中 构建说明 和 构建步骤(Linux) 在amd64环境内构建arm64的electron包。 如果是arm64环境请查看文章arm64架构编译electron长征路 一、环境说明 操作系统版本:统信1060 操作系统架构:amd64 内存:32G 如下图: electron版本:v25…

vue+百度地图根据后端返回的经纬度坐标实现地图点位添加

1.效果图 2.准备工作 public/index <script src"http://api.map.baidu.com/api?typewebgl&v2.0&aksRDDfAKpCSG5iF1rvwph4Q95M6tDCApL"></script> 3.html <div id"vehicleMap"></div> 4.js data() {return {url: /…

黏菌优化算法MATLAB实战[免费]

一、算法原理 黏菌算法&#xff08;Slime mould algorithm,SMA&#xff09;是模拟黏菌捕食行为的一种仿生算法。黏菌根据气味识别到食物后&#xff0c;通过细胞质的流动形成多个叶脉&#xff0c;同时向多个食物进行移动&#xff0c;当叶脉接近食物源时&#xff0c;黏菌的生物振…

论文阅读 BERT GPT - transformer在NLP领域的延伸

文章目录 不会写的很详细&#xff0c;只是为了帮助我理解在CV领域transformer的拓展1 摘要1.1 BERT - 核心1.2 GPT - 核心 2 模型架构2.1 概览 3 区别3.1 finetune和prompt 3.2 transformer及训练总结 不会写的很详细&#xff0c;只是为了帮助我理解在CV领域transformer的拓展 …

寒武纪显卡实现softmax算子

寒武纪显卡实现softmax基本逻辑 寒武纪实现softmax包括下面5个步骤&#xff0c;我们也采取5个kernel来实现softmax&#xff1a; unionMaxKernel(float* middle, float* source1, int num)&#xff0c;这个kernel使用的任务类型是union1&#xff0c;其中middle的长度为taskDim&…

【mysql】—— 用户管理

目录 &#xff08;一&#xff09;为什么要有用户管理&#xff1f; &#xff08;二&#xff09;用户 2.1 查看用户信息 2.2 创建用户 2.3 删除用户 2.4 修改用户密码 &#xff08;三&#xff09;数据库的权限 3.1 给用户授权 3.2 回收权限 &#xff08;一&#xff09;为…

查看服务器的yum 源

1、cd /etc/yum.repos.d 2、编辑 CentOS-Stream-Sources.repo 3、 查看里面的yum源地址 4、更新yum源&#xff0c;执行下面指令 yum clean all # 清除系统所有的yum缓存 yum makeacache # 生成新的yum缓存 yum repolist

wind万得P0级故障回顾

万得信息技术股份有限公司&#xff08;简称wind&#xff09;是中国大陆领先的金融数据、信息和软件服务企业&#xff0c;总部位于上海陆家嘴金融中心。在国内市场&#xff0c;Wind的客户包括超过90%的中国证券公司、基金管理公司、保险公司、银行和投资公司等金融企业&#xff…