决策树:ID3,C4.5,CART树总结
树模型总结
决策树部分重点关注分叉的指标,多叉还是单叉,处理离散还是连续值,剪枝方法,以及回归还是分类
一、决策树
ID3(Iterative Dichotomiser 3) 、C4.5、CART决策树
ID3:确定分类规则判别指标、寻找能够最快速降低信息熵的方式进行数据集划分(分类规则提取)
C4.5:一方面使得现在的树模型能够处理连续变量(此前的ID3只能处理分类变量),同时也能够一定程度提高树模型的生长速度,而C4.5也是目前最为通用的决策树模型的一般框架
CART决策树:分类与回归决策树,拓展了回归类问题的计算流程(此前C4.5只能解决分类问题),并且允许采用更丰富的评估指标来指导建模流程,CART树还能够用一套流程同时处理离散变量和连续变量、能够同时处理分类问题和回归问题
二、CART树:
先考虑自变量都是离散变量的分类预测问题,再逐步拓展连续变量的处理方法和回归类问题的预测方法。
划分标准:不纯度,一般有三种,分别是分类误差、信息熵和基尼系数,
(1)分类误差:𝐶𝑙𝑎𝑠𝑠𝑖𝑓𝑖𝑐𝑎𝑡𝑖𝑜𝑛 𝑒𝑟𝑟𝑜𝑟(𝑡)=1−max1≤𝑖≤𝑐[𝑝(𝑖|𝑡)]
例如某个包含10条数据的数据集,有6条0类数据、4条1类数据,此时该数据集分类误差就是1-6/10 = 0.4。分类误差在[0, 0.5]范围内取值,分类误差越小,说明数据集标签纯度越高。
(2)信息熵(Entropy):𝐸𝑛𝑡𝑟𝑜𝑝𝑦(𝑡)=−∑ 𝑖=1 𝑐 𝑝(𝑖|𝑡)𝑙𝑜𝑔2𝑝(𝑖|𝑡)
(3)基尼系数(Gini):𝐺𝑖𝑛𝑖(𝑡)=1−∑ 𝑖=1 𝑐 𝑝(𝑖|𝑡)2
规则创建:每两个点取中间值,因此离散和连续变量一样处理
CART树用这种方法同时处理离散和连续变量,而C4.5只用这种方式处理连续变量。因此CART树是将离散变量视为连续变量来处理
剪枝:前主流的C4.5和CART树都采用的是后剪枝的方法,其中C4.5是通过计算叶节点的期望错误率(一种区间估计的方法)来进行剪枝,而CART树则是通过类似正则化的方法在损失函数(基尼系数计算函数)中加入结构复杂度的惩罚因子,来进行剪枝。
实操中用决定树模型复杂度的参数(树深度等来剪枝)
分类树:
DecisionTreeClassifier的参数:

重点参数:
criterion:不纯度衡量指标
ccp_alpha:结构风险权重
控制树结构的参数类:
这类参数可以进一步细分成两类,其一是限制模型整体结构,主要包括限制树深度的max_depth参数和限制叶节点数量的max_leaf_nodes参数。
第二类就是限制树生长的参数,包括从节点样本数量限制树生长的参数,包括min_samples_split、min_samples_leaf两个参数,当然也有从损失值降低角度出发限制树生长的参数,包括min_impurity_split和min_impurity_decrease参数。
树的最大深度:指的是树的最多生长几层,或者除了根节点外总共有几层,并不是树的总共的层数。
控制迭代随机过程的参数类:
主要包含两个,其一是splitter参数,当该参数取值为random时其实是随机挑选分类规则对当前数据集进行划分,其二是max_features,该参数可以任意设置最多带入几个特征进行备选规律挖掘,只要该参数的设置不是带入全部特征进行建模,就相当于是给备选特征随机划个范围,也相当于是给树模型的训练增加了一定的随机性。
CART回归树:
区别:划分标准是MSE/MAE(MAE实际上计算的是预测值和真实值的差值的绝对值再除以样本总数)
𝑀𝐴𝐸=1𝑚∑𝑖=1𝑚|(𝑦𝑖−𝑦̂ 𝑖)|
也就是说,MSE是基于预测值和真实值之间的欧式距离进行的计算,而MAE则是基于二者的街道距离进行的计算
注意,criterion不仅是划分方式挑选时的评估标准,同时也是划分子数据集后选取预测值的决定因素。MSE下取均值,MAE下取中位数。
如果希望模型对极端值(非常大或者非常小的值,也被称为离群值)的忍耐程度比较高,整体建模过程不受极端值影响,可以考虑使用mae参数(就类似于中位数会更少的受到极端值的影响),此时模型一般不会为极端值单独设置规则。
三.ID3、C4.5决策树的建模流程
ID3无法处理连续型特征、也无法处理回归问题.如果带入训练数据有连续型变量,则首先需要对其进行离散化处理,也就是连续变量分箱。
ID3和CART树区别:
CART树是在所有特征里找一个切点做二分,而ID3是在一列里根据所有切分点做多叉树
CART树的备选规则就要多的多,这也使得CART树能够进行更加精细的规则提取;
C4.5:
三个优化:在衡量不纯度降低的数值计算过程中引入信息值概念来修正信息熵的计算结果,以抑制ID3更倾向于寻找分类水平较多的列来展开的情况,从而间接抑制模型过拟合倾向
其二则是新增了连续变量的处理方法,也就是CART树中寻找相邻取值的中间值作为切分点的方法;
其三是加入了决策树的剪枝流程,使得模型泛化能力能够得到进一步提升。
缺点:尽管有如此改进,但C4.5仍然只能解决分类问题,其本质仍然还是一种分类树。
节点划分:
1.I�𝑛𝑓𝑜𝑟𝑚𝑎𝑡𝑖𝑜𝑛 𝑉𝑎𝑙𝑢𝑒=−∑𝑖=1𝐾𝑃(𝑣𝑖)𝑙𝑜𝑔2𝑃(𝑣𝑖)
注意这里的比例不再是各类样本所占比例,而是各划分后子节点的数据所占比例
𝐺𝑎𝑖𝑛 𝑅𝑎𝑡𝑖𝑜=𝐼𝑛𝑓𝑜𝑟𝑚𝑎𝑡𝑖𝑜𝑛 𝐺𝑎𝑖𝑛/𝐼𝑛𝑓𝑜𝑟𝑚𝑎𝑡𝑖𝑜𝑛 𝑉𝑎𝑙𝑢𝑒来指导具体的划分规则的挑选
2.离散变量是一次消耗一列来进行展开(有可能多分叉),而连续变量则一次消耗一个切分点,因此和CART树一样、同一个连续变量可以多次指导数据集进行划分。
对比总结图

相关文章:
决策树:ID3,C4.5,CART树总结
树模型总结 决策树部分重点关注分叉的指标,多叉还是单叉,处理离散还是连续值,剪枝方法,以及回归还是分类 一、决策树 ID3(Iterative Dichotomiser 3) 、C4.5、CART决策树 ID3:确定分类规则判别指标、寻找能够最快速降低信息熵的方…...
easyexcel使用模板填充excel坑点总结
1.单层map设置值是{属性},那使用两层map进行设置值,是不是可以使用{属性.属性},以为取出map里字段只用{属性}就可以设置值,那再加个.就可以从里边map取出对应属性,没有两层map写法 填充得到的文件打开报错 was empty (…...
量子计算与经典计算融合:开启计算新时代
一、引言 随着科技的飞速发展,计算技术正迎来一场前所未有的变革。量子计算作为前沿技术,以其强大的并行计算能力和对复杂问题的高效处理能力,吸引了全球科技界的关注。然而,量子计算并非要完全取代经典计算,而是与经典…...
C# LINQ基础知识
简介 LINQ(Language Integrated Query),语言集成查询,是一系列直接将查询功能集成到 C# 语言的技术统称。使用LINQ表达式可以对数据集合进行过滤、排序、分组、聚合、串联等操作。 例子: public class Person {public int Id;public string…...
GCoNet+:更强大的团队协作 Co-Salient 目标检测器 2023 GCoNet+(翻译)
摘要 摘要:本文提出了一种新颖的端到端群体协作学习网络,名为GCoNet,它能够高效(每秒250帧)且有效地识别自然场景中的共同显著目标。所提出的GCoNet通过基于以下两个关键准则挖掘一致性表示,实现了共同显著…...
QT常见输入类控件及其属性
Line Edit QLineEdit用来表示单行输入框,可以输入一段文本,但是不能换行 核心属性: 核心信号 信号 说明 void cursorPositionChanged(int old,int new) 当鼠标移动时发出此型号,old为先前位置,new为新位置 void …...
Few-shot medical image segmentation with high-fidelity prototypes 论文总结
题目:Few-shot medical image segmentation with high-fidelity prototypes(高精确原型) 论文:Few-shot medical image segmentation with high-fidelity prototypes - ScienceDirect 源码:https://github.com/tntek/D…...
DBA工作常见问题整理
MVCC机制: PostgreSQL的多版本并发控制(MVCC)是其核心特性之一,它允许数据库在高并发环境下保持高性能的同时提供事务隔离。 MVCC通过维护数据的多个版本实现: 读操作不阻塞写操作写操作不阻塞读操作避免使用锁实现并发控制 PostgreSQL的MVCC特点 写时…...
深入理解Java包装类:自动装箱拆箱与缓存池机制
深入理解Java包装类:自动装箱拆箱与缓存池机制 对象包装器 Java中的数据类型可以分为两类:基本类型和引用类型。作为一门面向对象编程语言, 一切皆对象是Java语言的设计理念之一。但基本类型不是对象,无法直接参与面向对象操作&…...
如何使用Node-RED采集西门子PLC数据通过MQTT协议实现数据交互并WEB组态显示
需求概述 本章节主要实现一个流程:使用纵横智控的EG网关通过Node-red(可视化编程)采集PLC数据,并通过MQTT协议和VISION(WEB组态)实现数据交互。 以采集西门子PLC为例,要采集的PLC的IP、端口和点…...
【cocos creator 3.x】速通3d模型导入, 模型创建,阴影,材质使用,模型贴图绑定
1、右键创建平面,立方体 2、点击场景根节点,shadows勾选enabled3、点击灯光,shadow enabled勾选 4、点击模型,勾选接收阴影,投射阴影(按照需要勾选) 5、材质创建 6、选中节点,找…...
批量创建OpenStack实例
在Linux终端实现批量创建OpenStack实例,支持支持统计、并发创建、安全确认、重试机制、日志。 #!/bin/bash # # 增强版OpenStack实例创建脚本(修复日志功能) # 功能:支持统计、并发创建、安全确认、重试机制 # 更新日期…...
常用的 SQL 语句分类整理
以下是常用的 SQL 语句分类整理,覆盖数据查询、操作、表管理和高级功能,适用于大多数关系型数据库(如 MySQL、PostgreSQL、SQL Server): 目录 一、数据查询(DQL) 1. 基础查…...
驱动开发硬核特训 · Day 15:电源管理核心知识与实战解析
在嵌入式系统中,电源管理(Power Management)并不是“可选项”,而是实际部署中影响系统稳定性、功耗、安全性的重要一环。今天我们将以 Linux 电源管理框架 为基础,从理论结构、内核架构,再到典型驱动实战&a…...
【零基础】基于DeepSeek-R1与Qwen2.5Max的行业洞察自动化平台
自动生成行业报告,通过调用两个不同的大模型(DeepSeek 和 Qwen),完成从行业趋势分析到结构化报告生成的全过程。 完整代码:https://mp.weixin.qq.com/s/6pHi_aIDBcJKw1U61n1uUg 🧠 1. 整体目的与功能 该脚本实现了一个名为 ReportGenerator 的类,用于: 调用 DeepSe…...
Web前端 (CSS篇)
什么是CSS? css(Cascading Style Sheets)是层叠样式表或级联样式表,是一组设置规则,用于控制web页面外观。 为什么使用CSS? CSS 用于定义网页的样式,包括针对不同设备和屏幕尺寸的设计和布局。 CSS 实例 body {background-col…...
C 语言联合与枚举:自定义类型的核心解析
目录 1.联合体 1.1联合体的声明与创建 1.2联合体在内存中的存储 1.3相同成员的结构体与内存比较 1.4联合体内存空间大小的计算 1.5联合体的应用 2.枚举类型 2.1枚举变量的声明 2.2枚举变量的优点 2.3枚举的使用 上篇博客中,我们通过学习了解了C语言中一种自…...
基于Canal+Spring Boot+Kafka的MySQL数据变更实时监听实战指南
前期知识背景 binlog 什么是binlog 它记录了所有的DDL和DML(除 了数据查询语句)语句,以事件形式记录,还包含语句所执行的消耗的时间,MySQL 的二进制日志是事务安全型的。一般来说开启二进制日志大概会有1%的性能损耗。 binlog分类 MySQL Bi…...
MySQL运维三部曲初级篇:从零开始打造稳定高效的数据库环境
文章目录 一、服务器选型——给数据库一个舒适的家二、系统调优——打造高性能跑道三、MySQL配置——让数据库火力全开四、监控体系——数据库的体检中心五、备份恢复——数据安全的最后防线六、主从复制——数据同步的艺术七、安全加固——守护数据长城 引言:从小白…...
golang context源码
解析 context结构 Deadline:返回 context 的过期时间; Done:返回 context 中的 channel; Err:返回错误; Value:返回 context 中的对应 key 的值. type Context interface {Deadline() (deadl…...
【MySQL】MySQL的基础语法及其语句的介绍
1、基础语法 mysql -h【主机名】 -u【用户名】 -p //登录MySQL exit或quit; //退出MySQL show database; //查看MySQL下的所有数据库 use 【数据库名】; //进入数据库 show tables; //查看数据库下的所有表名 *MySQL的启动和关闭 &am…...
大模型应用开发自学笔记
理论学习地址: https://zh.d2l.ai/chapter_linear-networks/index.html autodl学术加速: source /etc/network_turboconda常见操作: 删除: conda remove --name myenv --all -y导出: conda env export > environment.yml…...
Spring能够有效地解决单例Bean之间的循环依赖问题
在Spring框架中,earlySingletonObjects和singletonObjects是两个与Bean实例化过程密切相关的概念,它们都存储在DefaultSingletonBeanRegistry类中。这两个概念主要用于Spring的依赖注入机制,特别是针对单例Bean的创建过程。 singletonObject…...
【计算机视觉】三维视觉项目 - Colmap二维图像重建三维场景
COLMAP 3D重建 项目概述项目功能项目运行方式1. 环境准备2. 编译 COLMAP3. 数据准备4. 运行 COLMAP 常见问题及解决方法1. **编译问题**2. **运行问题**3. **数据问题** 项目实战建议项目参考文献 项目概述 COLMAP 是一个开源的三维重建软件,专注于 Structure-from…...
Linux 离线部署 Docker 18.06.3 终极指南(附一键安装卸载脚本)
Linux 离线部署 Docker 18.06.3 终极指南(附一键安装/卸载脚本) 摘要:本文针对无外网环境的 Linux 服务器,提供基于二进制包的 Docker 18.06.3 离线安装全流程指南。包含自动化脚本设计、服务配置优化及安全卸载方案,…...
ALSA架构学习2(驱动MAX98357A)
1 前言和环境 之前其实写过两篇,一篇是讲ALSA,一篇是I2S。 ALSA架构学习1(框架)_alsa框架学习-CSDN博客 总线学习5--I2S_max98357接喇叭教程-CSDN博客 在ALSA那篇的结尾,也提了几个小练习。比如: ### 4…...
数据结构*集合框架顺序表-ArrayList
集合框架 常见的集合框架 什么是顺序表 顺序表是一种线性表数据结构,它借助一组连续的存储单元来依次存储线性表中的数据元素。一般情况下采用数组存储。 在数组上完成数据的增删查改。 自定义简易版的顺序表 代码展示: public interface IArray…...
VMware Workstation 保姆级 Linux(CentOS) 创建教程(附 iso)
文章目录 一、下载二、创建 一、下载 CentOS-7.9-x86_64-DVD-2009.iso 二、创建 VMware Workstation 保姆级安装教程(附安装包) VMware Workstation 保姆级安装教程(附安装包) VMware Workstation 保姆级安装教程(附安装包)...
51、项⽬中的权限管理怎么实现的
答:权限管理有三个很重要的模块; (1)⽤⼾模块:可以给⽤⼾分配不同的⻆⾊ (2)⻆⾊模块:可以授于⽤⼾不同的⻆⾊,不同的⻆⾊有不同权限 (3)权限模块:⽤于管理系统中的权限接⼝,为⻆⾊提供对…...
软考-信息系统项目管理师-2 信息技术发展
总结思维导图 云计算(掌握) (3)多租户和访问控制管理访问控制管理是云计算应用的核心问题之一云计算访问控制的研究主要集中在云计算访问控制模型、基于ABE密码体制的云计算访问控制、云中多租户及虚拟化访问控制研究云中多租户及虚拟化访问控制是云计算的典型特征。 大数据(…...
