决策树与随机森林

目录

  • 决策树
    • 是:
    • 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

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

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

相关文章

网络安全--原型链污染

目录 1.什么是原型链污染 2.原型链三属性 1)prototype 2)constructor 3)__proto__ 4)原型链三属性之间关系 3.JavaScript原型链继承 1)分析 2)总结 3)运行结果 4.原型链污染简单实验 1)实验一 2&#xff0…

使用hutool工具生成树形结构

假设要构建一个菜单,可以实现智慧库房,菜单的样子如下: 智慧库房|- RFID|- 智慧大屏|- 智能密集架|- 环境管控那这种结构如何保存在数据库中呢?一般是这样的: ​ 每条数据根据parentId相互关联并表示层级关系&#x…

Killing LeetCode [83] 删除排序链表中的重复元素

Description 给定一个已排序的链表的头 head , 删除所有重复的元素,使每个元素只出现一次 。返回 已排序的链表 。 Intro Ref Link:https://leetcode.cn/problems/remove-duplicates-from-sorted-list/ Difficulty:Easy Tag&am…

云上 Index:看「简墨」如何为云原生打造全新索引

拓数派首款数据计算引擎 PieCloudDB Database 是一款全新的云原生虚拟数仓。为了提升用户使用体验,提高查询效率,在实现存算分离的同时,PieCloudDB 设计与打造了全新的存储引擎「简墨」等模块,并针对云场景和分析型场景设计了高效…

常见的设计模式(超详细)

文章目录 单例模式饿汉式单例模式懒汉式单例模式双重检索单例模式 工厂模式简单工厂模式工厂(方法)模式抽象工厂模式 原型模式代理模式 单例模式 确保一个类只有一个实例,并且自行实例化并向整个系统提供这个实例。 饿汉式单例模式 饿汉式单…

端口快查表 | 介绍及其作用 | IT人必备技能

1.概述: 端口总数:65535,一般用到的是1~65535,0一般不使用。 0-1023:系统端口,也叫公认端口,这些端口只有系统特许的进程才能使用。 1024~65535为用户端口。 1024-5000:临时端口…

C语言一些有趣的冷门知识

文章目录 概要1.访问数组元素的方法运行结果 2.中括号的特殊用法运行结果 3.大括号的特殊用法运行结果 4.sizeof的用法运行结果 5.渐进运算符运行结果 小结 概要 本文章只是介绍一些有趣的C语言知识,纯属娱乐。这里所有的演示代码我是使用的编译器是Visual Studio …

【Docker】Docker+Zipkin+Elasticsearch+Kibana部署分布式链路追踪

文章目录 1. 组件介绍2. 服务整合2.1. 前提:安装好Elaticsearch和Kibana2.2. 再整合Zipkin 点击跳转:Docker安装MySQL、Redis、RabbitMQ、Elasticsearch、Nacos等常见服务全套(质量有保证,内容详情) 本文主要讨论在Ela…

ChatGPT3.5——AI人工智能是个什么玩意?

ChatGPT3.5——AI人工智能 AI人工智能什么是AI?AI有什么过人之处AI有什么缺点 AI的发展AI的发展史中国是如何发展AI的 AI六大要素感知理解推理学习交互 ChatCPT-3.5GPT-3.5的优势在哪里GPT-3.5的风险GPT-4骗人事件 AI人工智能 AI,就像是一位超级聪明的机…

vue diff 前后缀+最长递增子序列算法

文章目录 查找相同前后缀通过前后缀位置信息新增节点通过前后缀位置信息删除节点 中间部份 diff判断节点是否需要移动删除节点删除未查找到的节点删除多余节点 移动和新增节点最长递增子序列 求解最长递增子序列位置信息 查找相同前后缀 如上图所示,新旧 children 拥…

2023年08月在线IDE流行度最新排名

点击查看最新在线IDE流行度最新排名(每月更新) 2023年08月在线IDE流行度最新排名 TOP 在线IDE排名是通过分析在线ide名称在谷歌上被搜索的频率而创建的 在线IDE被搜索的次数越多,人们就会认为它越受欢迎。原始数据来自谷歌Trends 如果您相…

LeetCode257. 二叉树的所有路径

257. 二叉树的所有路径 文章目录 257. 二叉树的所有路径一、题目二、题解方法一:深度优先搜索递归方法二:迭代 一、题目 给你一个二叉树的根节点 root ,按 任意顺序 ,返回所有从根节点到叶子节点的路径。 叶子节点 是指没有子节点…

【逗老师的PMP学习笔记】5、项目范围管理

目录 一、规划范围管理二、收集需求1、【关键工具】头脑风暴2、【关键工具】访谈3、【关键工具】问卷调查4、【关键工具】标杆对照(对标)5、【关键工具】亲和图和思维导图6、【关键工具】质量功能展开7、【关键工具】用户故事8、【关键工具】原型法9、【…

python制作小程序制作流程,用python编写一个小程序

这篇文章主要介绍了python制作小程序代码宠物运输,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获,下面让小编带着大家一起了解一下。 1 importtkinter2 importtkinter.messagebox3 importmath4 classJSQ:5 6 7 d…

Pytest简介及jenkins集成

一、pytest介绍 pytest介绍 - unittest\nose pytest:基于unittest之上的单元测试框架 自动发现测试模块和测试方法 断言使用assert表达式即可 可以设置测试会话级、模块级、类级、函数级的fixtures 数据准备 清理工作 unittest:setUp、teardown、…

6.6.tensorRT高级(1)-mmdetection框架下yolox模型导出并推理

目录 前言1. yolox导出2. yolox推理3. 补充知识3.1 知识点3.2 mmdetection 总结 前言 杜老师推出的 tensorRT从零起步高性能部署 课程,之前有看过一遍,但是没有做笔记,很多东西也忘了。这次重新撸一遍,顺便记记笔记。 本次课程学习…

从 GPU 到 ChatGPT,一文带你理清GPU/CPU/AI/NLP/GPT之间的千丝万缕【建议收藏】

目录 硬件 GPU 什么是 GPU? GPU 是如何工作的? GPU 和 CPU 的区别 GPU 厂商 海外头部 GPU 厂商: 国内 GPU 厂商: nvidia 的产品矩阵 AI 什么是人工智能 (Artificial Intelligence-AI)? 人工智能细分领域 …

ROS添加发布者和订阅者机制实现

一. ROS的节点和包 ✨Node: ROS的基本单位,实现某个功能的节点。比如实现超声波传感器就是一个节点,雷达传感器就可以是一个节点 ✨Package: 多个有联系的节点组成的单位,比如你要控制无人机姿态,可能需要…

Crowd-Robot Interaction 论文阅读

论文信息 题目:Crowd-Robot Interaction:Crowd-aware Robot Navigation with Attention-based Deep Reinforcement Learning 作者:Changan Chen, Y uejiang Liu 代码地址:https://github.com/vita-epfl/CrowdNav 来源:arXiv 时间…

ES新特性部分

文章目录 Symbol创建使用拓展对象的方法直接添加 控制对象控制类型检查控制是否展开 遍历迭代器自定义遍历 生成器函数(实现异步编程)解决回调地狱 Promise连续读文件 SetMap类静态属性继承ES5ES6 GET与SET 数值Object方法模块化导入另一种导入 babel ES…