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

【西瓜书】4.决策树

1 递归返回情况

        (1)结点包含样本全为同一类别

        (2)属性集为空,没有属性可供划分了

                或

                有属性,但是在属性上划分的结果都一样

        (3)结点为空结点

**结束时判定该结点的类别遵循如下规则:

        (1)若全为一个类别,则该结点为该类别,如全为“好瓜”,则该结点为好瓜

        (2)若某一个类别比其他类别多,则该结点为该类别,如结点中的样本“好瓜”>“坏瓜”,则该结点为好瓜。

        (3)若所有类别样本数一样,或为空集,则取其父节点的类别作为该结点的类别。

2.经典的属性划分方法
2.1.信息增益(选大)
  • 样本集信息熵,信息熵越小,则集合越纯,如果集合只属于1个类别,那么信息熵为0
  • 每个属性每个取值的信息熵,这些信息熵按比例相加
  • 每个属性信息增益,等于样本集信息熵减去该属性的加权信息熵
  • 信息熵Ent(D)越小,数据集D的纯度越高
  • 信息增益越大,则使用该属性来进行划分所获得的“纯度提升”越大
2.2.增益率(选大)
  • 信息增益对可取值数目较多的属性有所偏好,所以用增益率克服这一缺点
  • 选择增益率大的属性,即选择信息增益大分支少的属性
2.3.基尼指数(选小)
  • 反映了从D中随机抽取两个样本,其类别标记不一致的概率
  • Gini(D)越小,数据集D的纯度越高
3.剪枝处理

        划分选择的各种准则虽然对决策树的尺寸有较大影响,但对泛化性能的影响很有限;而剪枝方法和程度对决策树泛化性能的影响更为显著。(也就是说选择剪枝方法比选基尼指数、信息增益还是增益率这种划分策略的影响更大)

        是对付“过拟合”的主要手段,剪枝的基本策略:

3.1.预剪枝
  1. 采用基于分层采样的留出法,初始认为所有样本都是好的,此时可计算模型的正确率为验证集中好瓜的比例。
  2. 运用一种属性划分方法选择出一个最好的属性进行划分,划分之后计算加了一层之后的正确率,并与未引入划分的正确率进行比较,若划分后的正确率>未划分就生成,否则不生成。


3.2.后剪枝

        先生成完整的决策树,再倒着看每棵子树是否有价值。如果剪枝后的树>未剪枝的树则剪枝,否则不剪,当正确率相等时不做操作,一方面是防止欠拟合,一方面是剪枝也会有一定的开销。

4.连续值处理 
  • 与离散属性不同,若当前结点划分属性为连续属性,该属性还可作为其后代结点的划分属性。也就是在某个点算出按密度<0.35和密度>0.35划分,后面在计算时还要把密度纳入考虑范围,且下次的划分点可能就不是0.35了。而别的离散属性比如颜色,如果用过就从属性集合中删去了。
  • 方法:二分法
5.缺失值处理
  • 样本赋权,权重划分 

单变量决策树

 

多变量决策树

相关文章:

【西瓜书】4.决策树

1 递归返回情况 &#xff08;1&#xff09;结点包含样本全为同一类别 &#xff08;2&#xff09;属性集为空&#xff0c;没有属性可供划分了 或 有属性&#xff0c;但是在属性上划分的结果都一样 &#xff08;3&#xff09;结点为空结点 **结束时判定该结点的类别遵循如下规则&…...

区块链--Ubuntu上搭建以太坊私有链

1、搭建私链所需环境 操作系统&#xff1a;ubuntu16.04&#xff0c;开虚拟机的话要至少4G&#xff0c;否则会影响测试挖矿时的速度 软件&#xff1a; geth客户端 Mist和Ethereum Wallet&#xff1a;Releases ethereum/mist GitHub 2、安装geth客户端 sudo apt-get update …...

菜品信息分页查询——后端SpringBoot

1.分页查询的逻辑&#xff1a; 页面发送ajax请求&#xff0c;将分页查询参数(page&#xff0c;pageSize, name)提交到服务端&#xff0c;获取分页数据&#xff1b; 页面发送请求&#xff0c;请求服务端进行图片下载&#xff0c;用于页面图片展示。 开发菜品信息分页查询功能&a…...

利用GPT和PlantUML快速生成UML图用于设计

在软件开发中&#xff0c;设计阶段可是关键的一步。UML&#xff08;统一建模语言&#xff09;图能帮我们更清晰地理解和规划系统结构&#xff0c;但手动画UML图有时会很费时费力。好消息是&#xff0c;通过结合使用ChatGPT和PlantUML&#xff0c;我们可以高效地生成UML图&#…...

web-上传项目文件夹到Git远程仓库

Git初识 概念&#xff1a;一个免费开源&#xff0c;分布式的代码版本控制系统&#xff0c;帮助开发团队维护代码 作用&#xff1a;记录代码内容&#xff0c;切换代码版本&#xff0c;多人开发时高效合并代码内容 检验成功 打开bash终端&#xff08;git专用&#xff09;命令…...

使用OpenPCDet训练与测试Transformer模型:如何加载自己的数据集

引言 Transformer架构因其强大的序列处理能力和长距离依赖捕捉能力&#xff0c;在自然语言处理领域取得了巨大成功。近年来&#xff0c;这一架构也被引入3D物体检测领域&#xff0c;如Voxel Transformer等&#xff0c;显著提升了模型在复杂场景下的检测性能。OpenPCDet整合了多…...

四舍五入问题

单纯输出四舍五入可以用 printf("%.nf",num); 但是这个方法有时候会出错 代表输出n位四舍五入小数 而将数四舍五入赋值给变量可以用round&#xff08;&#xff09;函数 a round(num); 表示将num四舍五入赋值给a 但是这么些只能转换位四舍五入的整数 可以改…...

零基础入门学用Arduino 第一部分(三)

重要的内容写在前面&#xff1a; 该系列是以up主太极创客的零基础入门学用Arduino教程为基础制作的学习笔记。个人把这个教程学完之后&#xff0c;整体感觉是很好的&#xff0c;如果有条件的可以先学习一些相关课程&#xff0c;学起来会更加轻松&#xff0c;相关课程有数字电路…...

C++标准库random

random 完整文档看这里 三步走: 选择一种随机数种子选择一个随机数引擎选择一个随机数分布输出 随机数种子 //生成随机数种子,在Linux的实现中,是读取/dev/urandom设备 std::random_device rd; unsigned seed1 rd();// 获取当前时间点作为随机数种子 unsigned seed2 std:…...

电子电气架构——车载诊断DTC一文通

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 没有人关注你。也无需有人关注你。你必须承认自己的价值,你不能站在他人的角度来反对自己。人生在世,最怕的就是把别人的眼光当成自己生活的唯一标…...

Golang | Leetcode Golang题解之第129题求根节点到叶节点数字之和

题目&#xff1a; 题解&#xff1a; type pair struct {node *TreeNodenum int }func sumNumbers(root *TreeNode) (sum int) {if root nil {return}queue : []pair{{root, root.Val}}for len(queue) > 0 {p : queue[0]queue queue[1:]left, right, num : p.node.Left, …...

工业信息化SCI期刊,中科院1区TOP,IF=12.3,收稿范围广泛

一、期刊名称 IEEE Transactions on Industrial Informatics 二、期刊简介概况 期刊类型&#xff1a;SCI 学科领域&#xff1a;工程工业 影响因子&#xff1a;12.3 中科院分区&#xff1a;1区TOP 三、期刊征稿范围 IEEE工业信息学汇刊是一本多学科期刊&#xff0c;发表技…...

Spring Boot整合Redis

Spring Boot整合Redis Spring Boot 整合 Redis 是一种常见的做法&#xff0c;用于在 Spring Boot 应用程序中添加缓存、会话管理分布式锁等功能。 浅谈Redis Redis用于存储数据&#xff0c;且在内存当中进行存储。 但是在日常编写代码时&#xff0c;定义一个变量也就是属于在内…...

kafka的leader和follower

leader和follower kafka的leader和follower是相对于分区有意义的&#xff0c;不是相对于broker。 因为每个分区都有leader和follower, leader负责读写数据。 follower负责复制leader的数据保存到自己的日志数据中&#xff0c;并在leader挂掉后重新选举出leader。 kafka会再…...

git 空仓库笔记

标识身份&#xff0c;建议先完成 Git 全局设置 git config --global user.name “账号” git config --global user.email “email” 方式一&#xff1a;克隆仓库 git clone https://url/your.git cd your_path touch README.md git add README.md git commit -m "add …...

字母异位词分组(charyw)

字母异位词分组 题目描述 给定一个字符串数组&#xff0c;将字母异位词组合在一起。字母异位词指字母相同&#xff0c;但排列不同的字符串。 输入格式 第一行正整数n&#xff0c;表示有n个字符串(1<n<1000) 第二行n个字符串&#xff0c;空格隔开 输出格式 多组字母…...

力扣 41.缺少的第一个正整数

题目描述&#xff1a; 给你一个未排序的整数数组 nums &#xff0c;请你找出其中没有出现的最小的正整数。 请你实现时间复杂度为 O(n) 并且只使用常数级别额外空间的解决方案。 示例 1&#xff1a; 输入&#xff1a;nums [1,2,0] 输出&#xff1a;3 解释&#xff1a;范围 …...

Git从入门到放弃

由于我的Git学的不太好&#xff0c;所以为了能够将以后我的学习笔记能够整理的更好&#xff0c;我先要系统的学习一下git&#xff0c;文章由此产生。 文章笔记源自尚硅谷Git入门到精通全套教程视频内容 1 进入官网 学习新技术的第一步需要熟悉官网&#xff0c;Git也不例外。ht…...

003.数据分析_PandasSeries对象

我 的 个 人 主 页&#xff1a;&#x1f449;&#x1f449; 失心疯的个人主页 &#x1f448;&#x1f448; 入 门 教 程 推 荐 &#xff1a;&#x1f449;&#x1f449; Python零基础入门教程合集 &#x1f448;&#x1f448; 虚 拟 环 境 搭 建 &#xff1a;&#x1f449;&…...

【介绍下什么是Kubernetes编排系统】

&#x1f308;个人主页: 程序员不想敲代码啊 &#x1f3c6;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f44d;点赞⭐评论⭐收藏 &#x1f91d;希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff0c;让我们共…...

别再死磕公式了!用Ansoft Maxwell 2D给永磁无刷电机做仿真,保姆级操作流程(附避坑点)

永磁无刷电机仿真实战&#xff1a;从零掌握Ansoft Maxwell 2D的高效工作流 第一次打开Ansoft Maxwell 2D时&#xff0c;满屏的专业术语和复杂的参数设置界面确实容易让人望而生畏。作为从业十年的电机设计工程师&#xff0c;我完全理解这种面对专业仿真软件时的无力感——理论书…...

Windows 10下Cesium Terrain Builder编译踩坑实录(VS2015+GDAL环境配置)

Windows 10下Cesium Terrain Builder编译实战指南&#xff08;VS2015GDAL环境配置&#xff09; 在三维GIS开发领域&#xff0c;Cesium Terrain Builder&#xff08;CTB&#xff09;作为生成量化网格地形瓦片的核心工具&#xff0c;其编译过程却常让开发者望而生畏。特别是在Win…...

从像素到对象:如何用HANet和SNUNet搞定遥感影像中的‘小目标’与‘不平衡’难题?

从像素到对象&#xff1a;HANet与SNUNet在遥感影像小目标检测中的实战解析 当洪水退去后的灾损评估卫星图上&#xff0c;那些被冲毁的农舍屋顶往往只占据几个像素&#xff1b;在城市违建监测中&#xff0c;新增的违章建筑可能只是高分辨率影像中的微小色块。这些"小目标&q…...

DeerFlow资源优化实践:控制Python执行环境内存占用方法

DeerFlow资源优化实践&#xff1a;控制Python执行环境内存占用方法 1. 认识DeerFlow&#xff1a;您的智能研究助手 DeerFlow是一个基于LangStack技术框架开发的深度研究开源项目&#xff0c;它就像是您的个人研究团队&#xff0c;能够帮您完成各种复杂的调研任务。这个工具整…...

Qwen3-0.6B-FP8企业级部署教程:基于Dify打造AI应用平台

Qwen3-0.6B-FP8企业级部署教程&#xff1a;基于Dify打造AI应用平台 想快速搭建一个属于自己或团队的AI应用&#xff0c;但又觉得从零开发太复杂&#xff1f;今天&#xff0c;我们就来聊聊如何用Qwen3-0.6B-FP8这个轻量高效的模型&#xff0c;结合Dify这个强大的AI应用开发平台…...

OpenClaw+nanobot学术助手:文献自动归类与摘要生成

OpenClawnanobot学术助手&#xff1a;文献自动归类与摘要生成 1. 为什么需要自动化文献管理工具 作为一名经常需要阅读大量论文的研究者&#xff0c;我长期被文献管理问题困扰。电脑里堆积如山的PDF文件&#xff0c;每次需要查找特定内容时都要花费大量时间翻找。更痛苦的是&…...

AppleRa1n:解锁iOS设备激活锁的专业指南与安全实践

AppleRa1n&#xff1a;解锁iOS设备激活锁的专业指南与安全实践 【免费下载链接】applera1n icloud bypass for ios 15-16 项目地址: https://gitcode.com/gh_mirrors/ap/applera1n 当您面对一台被激活锁困住的iPhone或iPad时&#xff0c;那种无助感就像是拥有一把无法打…...

别再只用折线图了!Excel散点图制作双轴图的3个隐藏技巧与常见误区

Excel双轴图进阶指南&#xff1a;为什么散点图比折线图更适合专业数据可视化 在数据可视化领域&#xff0c;Excel的双轴图表一直是展示多维度数据的利器。但很多用户在使用过程中都会遇到这样的困扰&#xff1a;明明按照教程步骤操作&#xff0c;最终呈现的图表却总是出现数据点…...

低成本DIY智能小车核心模块:用STM32和TB6612实现带编码器的定速巡航功能

低成本DIY智能小车核心模块&#xff1a;用STM32和TB6612实现带编码器的定速巡航功能 周末在工作室调试新做的智能小车时&#xff0c;突然意识到一个有趣的现象&#xff1a;当我们给电机设定固定转速后&#xff0c;实际速度总会因为电池电压波动、负载变化等因素产生偏差。这让…...

右键菜单太乱?ContextMenuManager让Windows操作效率提升300%

右键菜单太乱&#xff1f;ContextMenuManager让Windows操作效率提升300% 【免费下载链接】ContextMenuManager &#x1f5b1;️ 纯粹的Windows右键菜单管理程序 项目地址: https://gitcode.com/gh_mirrors/co/ContextMenuManager ContextMenuManager是一款纯粹的Windows…...