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

决策树与随机森林

目录

  • 决策树
    • 是:
    • Why:
    • How:
      • 基本概念
      • 决策树生成
        • 举例
        • 决策树缺点
          • 参考
      • Demo
  • 随机森林
    • 1.是:
    • 2.Why:
    • 3.How:
        • 参考
    • Demo

决策树

是:

1.一种有监督的分类(或预测)算法。
2.利用属性、属性值构造一个决策的路径,可类比程序的if_else的多层判断。
如:利用贷款人信息预测是否会拖延还贷的一个简单决策树。
在这里插入图片描述

Why:

  1. 易于理解和解释。树可以被可视化。
  2. 几乎不需要数据准备。其他算法通常需要数据标准化,需要创建虚拟变量并删除缺失值。但是,请注意,此模块不支持缺失值。
  3. 使用树的成本(即预测数据)是用于训练树的数据点数的对数。 能够处理数值型和分类型数据。其他技术通常专门分析只有一种类型变量的数据集。
  4. 能够处理多输出问题。
  5. 使用白盒模型。如果给定的情况在模型中是可以观察到的,那么对条件的解释就很容易用布尔逻辑来解释。相反,在黑箱模型中(例如,在人工神经网络中),结果可能很难解释。
  6. 可以使用统计测试验证模型。这样就有可能对模型的可靠性作出解释。 即使它的假设在某种程度上被生成数据的真实模型所违背,它也表现得很好。

How:

基本概念

  1. 训练数据:用于训练模型的数据,英文是train。

  2. 测试数据:用于测试(验证)模型准确度的数据,英文是test。训练数据、测试数据都是来自已知的数据集,然后划分为2部分,一部分训练、一部分测试(验证),也就是在已知的数据集内完成训练和验证,才能去预测实战。

  3. 纯度、不纯度:根据某个属性分割数据集,样本类型的集中度,纯度越高越高。如按是否恒温划分是否哺乳动物,10个里9个是哺乳动物,纯度高;如按是否有毛发划分,则10个里有6个是哺乳动物,则纯度降低。是否恒温是更好的划分属性。常用的测算纯度的函数有基尼gini、熵entropy。、
    在这里插入图片描述
    在这里插入图片描述在这里插入图片描述

  4. 信息增益(information gain):对父节点,按属性再次划分后,纯度的增加量。

决策树生成

举例

  1. 数据集
    样本个数10个,属性3个:有房者、婚姻、年收入;标签:是否拖欠贷款。
    可以凭感觉,用if-else构造一个决策树。属性排序:有房者、婚姻、年收入。
    问题:因为属性、属性性值、先后顺序,决策树有指数个肯能,哪个是最优?
    在这里插入图片描述

  2. 属性测算
    在这里插入图片描述

婚姻属性的信息纯度最高。
3. 属性选择
在这里插入图片描述

类似,生成完整的树。与感性的分配有差异,属性排序:婚姻、有房者、年收入。
关键问题:如何选择属性、生成节点?
选择属性、按属性值分类、局部最优、信息增益最大。
后序以此类推。

决策树缺点

  1. 决策树学习器可以创建过于复杂的树,不能很好地概括数据。这就是所谓的过拟合。为了避免这个问题,必须设置剪枝、设置叶节点所需的最小样本数或设置树的最大深度等机制。
  2. 决策树可能是不稳定的,因为数据中的小变化可能导致生成完全不同的树。通过集成决策树来缓解这个问题。
  3. 学习最优决策树的问题在最优性的几个方面都是NP-complete的,甚至对于简单的概念也是如此。因此,实际的决策树学习算法是基于启发式算法,如贪婪算法,在每个节点上进行局部最优决策。这种算法不能保证返回全局最优决策树。这可以通过训练多棵树再集成一个学习器来缓解,其中特征和样本被随机抽取并替换。
  4. 有些概念很难学习,因为决策树不能很容易地表达它们,例如异或、奇偶校验或多路复用器问题。
  5. 如果某些类占主导地位,则决策树学习者会创建有偏见的树。因此,建议在拟合决策树之前平衡数据集。
参考

https://www.bilibili.com/video/BV1T7411b7DG/?spm_id_from=333.337.search-card.all.click&vd_source=1e37904a72db86b329d6b5320c86a013

Demo

酒分类预测:
https://github.com/heroicpoem/MachineLearningInAction/blob/master/decisionTree.ipynb

随机森林

1.是:

基于决策树的、集成算法。
森林,指包含多个决策树;
随机,指构造单棵决策树时,随机的选择样本,使得决策树是不同,或者侧重不同的能力。最后是整合多棵树的预测结果:均值或者众数。

2.Why:

  1. 随机决策森林纠正了决策树的过度拟合
  2. 随机森林通常优于决策树,但它们的准确性低于梯度提升树
  3. 更多的树会提高性能并使预测更稳定
  4. 抗噪

3.How:

构造多棵决策树,分别决策,整合结果。
2个超参:决策树个数、分几层、如何采样、结果整合方法。
在这里插入图片描述

参考

https://www.bilibili.com/video/BV1H5411e73F/?spm_id_from=333.337.search-card.all.click&vd_source=1e37904a72db86b329d6b5320c86a013

Demo

https://blog.csdn.net/Graow/article/details/106749351

相关文章:

决策树与随机森林

目录 决策树是:Why:How:基本概念决策树生成举例决策树缺点参考 Demo 随机森林1.是:2.Why:3.How:参考 Demo 决策树 是: 1.一种有监督的分类(或预测)算法。 2.利用属性、…...

Nginx 网站服务

Nginx 稳定性高 (但是没有apache稳定) 版本号:1.12 1.20 1.22 系统资源消耗低 (处理http请求的并发能力很高,单台物理服务器可以处理30000-50000个并发请求) 稳定:一般在企业中,为了保持服务器稳定,并发量的…...

Python爬虫——爬虫时如何知道是否代理ip伪装成功?

前言 在进行爬虫时,我们可能需要使用代理IP来伪装自己的身份,以避免被网站封禁。如何判断代理IP是否伪装成功呢?本篇文章将围绕这个问题展开讲解,同时提供Python代码示例。 1. 确认代理IP地址 首先,我们需要确认代理…...

flink1.17 json_tuple udf 实现

使用效果 思路: flink1.17要求复杂类型必须通过hint指定每个字段类型, 只有固定个数,都是基础类型的flink才能自动推断. 这就导致json_tuple返回不定长参数无法搞定. 所以这里通过返回字符串数组来解决. 同时带来新的问题: 数组元素类型一样,导致fastjson2解析到的int也需要…...

Vue3实现6位验证码输入框,用户可以连续输入和删除

实现代码 可以随意填写删除 <template><div class"verification-container"><inputv-for"(code, index) in verificationCodes":key"index"v-model"verificationCodes[index]"input"handleInput(index, $event…...

如何在终端设置代理(设置jupyter notebook同理)

设置代理 在终端(我用的gitbash)下执行 set HTTP_PROXYhttp://<user>:<password><proxy server>:<proxy port> set HTTPS_PROXYhttp://<user>:<password><proxy server>:<proxy port>其中&#xff1a; user、password&#…...

git报错:Error merging: refusing to merge unrelated histories

碰对了情人&#xff0c;相思一辈子。 打命令&#xff1a;git pull origin master --allow-unrelated-histories 然后等一会 再push 切记不要有冲突的代码 需要改掉~...

QT-QLabel显示图片,按QLabel控件的大小自动缩放

要按照 QLabel 控件的大小调整并显示图片&#xff0c;你可以使用 scaled() 函数将 QPixmap 对象进行缩放&#xff0c;然后将缩放后的图片设置到 QLabel 上。下面是一个示例代码&#xff1a; #include <QApplication> #include <QLabel> #include <QPixmap>i…...

【JS代码调试技巧】你必须知道的Javascript技巧汇总

注&#xff1a;最后有面试挑战&#xff0c;看看自己掌握了吗 文章目录 使用控制台检查变量值控制台使用 type of 检查变量的类型捕获拼错的变量名和函数名捕获使用赋值运算符而不是相等运算符捕捉函数调用后缺少的左括号和右括号 &#x1f338;I could be bounded in a nutshel…...

JAVA-@Configuration注解属性proxyBeanMethods

Configuration注释中的proxyBeanMethods参数是springboot1.0&#xff0c;升级到springboot2.0之后新增的比较重要的内容&#xff0c;该参数是用来代理bean的。 理论 首先引出两个概念&#xff1a;Full 全模式&#xff0c;Lite 轻量级模式 Full(proxyBeanMethods true) :pro…...

锁策略, cas 和 synchronized 优化过程总结

目录 一、锁策略 1. 乐观锁和悲观锁 2. 读写锁 3. 重量级锁和轻量级锁 4. 自旋锁 5. 公平锁和非公平锁 6.可重入锁 vs 不可重入锁 二、CAS 1. CAS 是怎么实现的 1) 实现原子类 2) 实现自旋锁 3. CAS 的 ABA 问题 三、Synchronized 原理 1.Synchronized 加锁工作过程 3.1 偏向…...

正点原子HAL库入门1~GPIO

探索者F407ZGT6(V3) 理论基础 IO端口基本结构 F4/F7/H7系列的IO端口 F1在输出模式&#xff0c;禁止使用内部上下拉 F4/F7/H7在输出模式&#xff0c;可以使用内部上下拉不同系列IO翻转速度不同 F1系列的IO端口 施密特触发器&#xff1a;将非标准方波&#xff0c;整形为方波 当…...

华为VRP 系统基础配置

1.flash 相当于电脑的 硬盘 2.NVRAM 拿来专门存放系统配置文件 3.RAM 运行内存 4.ROM 系统引导 1.修改系统名[Huawei]sysname SWL1 2.配置登入信息 [SWL1]header shell information "Welocom to the learning" [SWL1]q <SWL1>q User interface con0 …...

面试热题(打家窃舍)

一个专业的小偷&#xff0c;计划偷窃沿街的房屋。每间房内都藏有一定的现金&#xff0c;影响小偷偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统&#xff0c;如果两间相邻的房屋在同一晚上被小偷闯入&#xff0c;系统会自动报警。 给定一个代表每个房屋存放金额的非负…...

【Deepsort】C++版本Deepsort编译(依赖opencv,eigen3)

目录 下载源码安装onnxruntime安装Eigen3编译opencv 下载源码 https://github.com/shaoshengsong/DeepSORT安装onnxruntime 安装方法参考博客 安装Eigen3 当谈及线性代数计算库时&#xff0c;Eigen3是一个强大而受欢迎的选择。Eigen3是一个C模板库&#xff0c;提供了许多用…...

Synchronized锁升级过程

无锁状态&#xff08;无锁&#xff09;&#xff1a;当一个线程访问一个没有被锁定的Synchronized代码块时&#xff0c;处于无锁状态。此时&#xff0c;线程可以直接进入临界区执行代码&#xff0c;不需要进行任何锁协调。 偏向锁状态&#xff08;偏向锁&#xff09;&#xff1…...

汽车电子功能安全

功能安全考虑 分析方法&#xff1a;FMEA&#xff0c;DFMEA&#xff08;设计潜在失效模式和影响分析&#xff09; 严重度&#xff08;Severity&#xff09;&#xff0c;暴露率&#xff08;Exposure&#xff09;&#xff0c;可控性&#xff08;Controllability&#xff09;评估…...

ARM进阶:内存屏障(DMB/DSB/ISB)的20个使用例子详解

在上一节内存屏障指令之DMB、DSB和ISB详解中&#xff0c;介绍了一下内存屏障的三个指令的作用并举了一些例子&#xff0c;对于内存屏障指令的使用时机&#xff0c;与处理器架构(比如Cortex-M和Cortex-A)和处理器的系统实现(同样的架构&#xff0c;有不同的实现&#xff0c;如ST…...

Cpp学习——模板

模板&#xff1f; 目录 模板&#xff1f; 1.介绍 2.函数模板的使用 3.函数模板的强制转换or显式调用 四,模板的分类 1.介绍 在Cpp3.0中&#xff0c;祖师爷便引入了模板的概念。这是一个重大的变革&#xff0c;为后来的Cpp标准化打下了铺垫。也正是因为有了模板&#xff0…...

HTTP 协议 版本详解

HTTP 协议 介绍<一> 简介 HTTP&#xff08;Hypertext Transfer Protocol&#xff09;是一种用于在客户端和服务器之间进行通信的协议。它是现代互联网中最常用的应用层协议之一。HTTP 的主要目的是实现超文本资源的传输&#xff0c;例如 HTML 文档、图像和音频文件等。…...

调用支付宝接口响应40004 SYSTEM_ERROR问题排查

在对接支付宝API的时候&#xff0c;遇到了一些问题&#xff0c;记录一下排查过程。 Body:{"datadigital_fincloud_generalsaas_face_certify_initialize_response":{"msg":"Business Failed","code":"40004","sub_msg…...

逻辑回归:给不确定性划界的分类大师

想象你是一名医生。面对患者的检查报告&#xff08;肿瘤大小、血液指标&#xff09;&#xff0c;你需要做出一个**决定性判断**&#xff1a;恶性还是良性&#xff1f;这种“非黑即白”的抉择&#xff0c;正是**逻辑回归&#xff08;Logistic Regression&#xff09;** 的战场&a…...

微信小程序 - 手机震动

一、界面 <button type"primary" bindtap"shortVibrate">短震动</button> <button type"primary" bindtap"longVibrate">长震动</button> 二、js逻辑代码 注&#xff1a;文档 https://developers.weixin.qq…...

【ROS】Nav2源码之nav2_behavior_tree-行为树节点列表

1、行为树节点分类 在 Nav2(Navigation2)的行为树框架中,行为树节点插件按照功能分为 Action(动作节点)、Condition(条件节点)、Control(控制节点) 和 Decorator(装饰节点) 四类。 1.1 动作节点 Action 执行具体的机器人操作或任务,直接与硬件、传感器或外部系统…...

2023赣州旅游投资集团

单选题 1.“不登高山&#xff0c;不知天之高也&#xff1b;不临深溪&#xff0c;不知地之厚也。”这句话说明_____。 A、人的意识具有创造性 B、人的认识是独立于实践之外的 C、实践在认识过程中具有决定作用 D、人的一切知识都是从直接经验中获得的 参考答案: C 本题解…...

智能AI电话机器人系统的识别能力现状与发展水平

一、引言 随着人工智能技术的飞速发展&#xff0c;AI电话机器人系统已经从简单的自动应答工具演变为具备复杂交互能力的智能助手。这类系统结合了语音识别、自然语言处理、情感计算和机器学习等多项前沿技术&#xff0c;在客户服务、营销推广、信息查询等领域发挥着越来越重要…...

快刀集(1): 一刀斩断视频片头广告

一刀流&#xff1a;用一个简单脚本&#xff0c;秒杀视频片头广告&#xff0c;还你清爽观影体验。 1. 引子 作为一个爱生活、爱学习、爱收藏高清资源的老码农&#xff0c;平时写代码之余看看电影、补补片&#xff0c;是再正常不过的事。 电影嘛&#xff0c;要沉浸&#xff0c;…...

【堆垛策略】设计方法

堆垛策略的设计是积木堆叠系统的核心&#xff0c;直接影响堆叠的稳定性、效率和容错能力。以下是分层次的堆垛策略设计方法&#xff0c;涵盖基础规则、优化算法和容错机制&#xff1a; 1. 基础堆垛规则 (1) 物理稳定性优先 重心原则&#xff1a; 大尺寸/重量积木在下&#xf…...

6个月Python学习计划 Day 16 - 面向对象编程(OOP)基础

第三周 Day 3 &#x1f3af; 今日目标 理解类&#xff08;class&#xff09;和对象&#xff08;object&#xff09;的关系学会定义类的属性、方法和构造函数&#xff08;init&#xff09;掌握对象的创建与使用初识封装、继承和多态的基本概念&#xff08;预告&#xff09; &a…...

【Post-process】【VBA】ETABS VBA FrameObj.GetNameList and write to EXCEL

ETABS API实战:导出框架元素数据到Excel 在结构工程师的日常工作中,经常需要从ETABS模型中提取框架元素信息进行后续分析。手动复制粘贴不仅耗时,还容易出错。今天我们来用简单的VBA代码实现自动化导出。 🎯 我们要实现什么? 一键点击,就能将ETABS中所有框架元素的基…...