一、经典决策树算法原理
(一)ID3 算法
核心思想:以 “信息增益” 作为划分属性的选择标准,通过最大化信息增益来提升数据集的 “纯度”。
关键概念 —— 信息增益:指某个属性带来的 “熵减”(即纯度提升量)。具体来说,当用属性 a 对数据集 D 进行划分后,数据集的整体熵值会降低,降低的数值就是属性 a 的信息增益。信息增益越大,说明使用该属性划分后,数据集的类别分布越集中(纯度越高),因此更适合作为当前节点的划分属性。
局限性:信息增益准则对 “可取值数目较多的属性” 存在天然偏好。例如,若数据集中存在 “编号” 这类属性(每个样本的编号唯一),用编号划分时每个子集都只包含单个样本,信息增益会非常大,但这种划分对分类任务毫无意义,因为它完全过拟合了训练数据,无法推广到新样本。
(二)C4.5 算法
改进目标:解决 ID3 算法对取值多的属性偏好问题,通过引入 “信息增益率” 实现更合理的属性选择。
核心指标 —— 信息增益率:计算公式为 “信息增益 ÷ 属性自身的熵”。其中,属性自身的熵反映了该属性取值的分散程度:取值越多且分布越均匀,自身熵越大。通过除以自身熵,信息增益率可以平衡属性取值数量对结果的影响,避免优先选择取值过多的属性。例如,对于 “编号” 这类属性,虽然信息增益大,但自身熵也极大,因此信息增益率会降低,从而避免被误选为最优划分属性。
(三)CART 算法
核心指标 —— 基尼指数:用于衡量数据集的纯度,其物理意义是 “从数据集 D 中随机抽取两个样本,它们的类别标记不一致的概率”。


是数据集 D 中第 k 类样本的占比。当某个类别在数据集中占比极高(
P k
接近 1)时,基尼指数会很小,说明数据集纯度很高;反之,若各类别占比接近,基尼指数会增大,纯度降低。
特点:CART 树是 “二叉树”,每次划分都将数据集分为两个子集,因此无论是离散属性还是连续属性,都采用二分法处理,这与 ID3、C4.5 的多叉划分不同。
二、连续值属性的处理方法
在实际数据中,很多属性是连续值(如收入、年龄等),无法直接像离散属性那样按取值划分,需要通过 “离散化” 转化为离散属性,具体步骤如下:

排序:将连续属性的所有取值按从小到大的顺序排列。例如,某数据集中 “应税收入(Taxable Income)” 的取值为 60K、70K、75K、85K、90K、95K、100K、120K、125K、220K,排序后保持原顺序。
确定候选分界点:采用 “二分法” 时,候选分界点为相邻两个取值的中间值。对于有 n 个不同取值的连续属性,候选分界点有 n-1 个。例如上述收入数据有 10 个取值,因此有 9 个候选分界点(如 65K、72.5K 等)。
选择最优分界点:使用 “贪婪算法”,分别计算每个候选分界点对应的信息增益(或基尼指数),选择能使划分后纯度提升最大的分界点作为最终分割点。例如,可将收入分割为 “TaxIn≤80K” 和 “TaxIn>80K”,或 “TaxIn≤97.5K” 和 “TaxIn>97.5K”,具体取决于哪种划分的指标更优。
三、决策树剪枝策略(解决过拟合问题)
(一)剪枝的必要性
决策树具有很强的拟合能力,理论上可以通过不断划分,将训练集中的每个样本都分到单独的叶子节点,实现 “零错误率”。但这种过度复杂的树会 “记住” 训练数据中的噪声和细节,导致在新数据(测试集)上表现很差,即发生 “过拟合”。剪枝的目的就是通过简化树的结构,降低过拟合风险,提高模型的泛化能力。
(二)预剪枝
操作时机:在决策树构建过程中同步进行剪枝,即边建边剪。
核心逻辑:通过设置 “停止条件”,提前终止某些分支的生长。例如:
限制树的最大深度:当树的深度达到预设阈值时,不再继续划分。
限制叶子节点的最小样本数:若当前节点的样本数小于阈值,即使信息增益仍为正,也停止划分,将当前节点设为叶子节点。
限制信息增益阈值:若某属性的信息增益小于预设阈值,不采用该属性划分,直接将当前节点设为叶子节点。
优点:计算效率高,能避免构建不必要的复杂分支;实用性强,在实际工程中应用广泛。
(三)后剪枝
操作时机:先完整构建决策树,再从叶子节点向上逐层剪枝。
核心逻辑:通过 “损失函数” 衡量剪枝前后的模型性能,保留性能更优的结构。损失函数公式为:最终损失 = 叶子节点的基尼系数(或熵)之和 + α× 叶子节点数量。其中:
第一项 “叶子节点的基尼系数之和” 反映模型对训练数据的拟合程度,值越小拟合越好。
第二项 “α× 叶子节点数量” 是正则化项,α 为超参数,控制对树复杂度的惩罚力度。α 越大,惩罚越强,越倾向于选择简单的树(叶子节点少);α 越小,惩罚越弱,更注重拟合效果。
剪枝决策:对每个非叶子节点,计算 “剪枝后将其变为叶子节点” 的损失,与 “保留原分支” 的损失对比,若剪枝后损失更小,则进行剪枝。
实例效果:在 “好瓜 / 坏瓜” 分类案例中,原分支 “色泽 =?” 剪枝前验证集精度为 57.1%,剪枝后提升至 71.4%;分支 “纹理 =?” 剪枝前精度 42.9%,剪枝后提升至 57.1%,均通过后剪枝显著提升了泛化能力。
四、决策树代码实现关键参数(以 sklearn 为例)
在 Python 的 scikit-learn 库中,使用DecisionTreeClassifier()类创建决策树分类模型,以下是核心参数的详细说明:

criterion:指定划分属性的评价指标,可选值为 “gini”(基尼指数)或 “entropy”(信息熵)。默认值为 “gini”,计算效率略高于熵,实际应用中两者效果差异不大。
splitter:指定划分点的选择策略,可选值为 “best” 或 “random”。“best” 表示在所有特征中寻找最优划分点,适合数据量较小的场景;“random” 表示在部分特征中随机选择划分点,能减少过拟合风险,适合高维数据或需要加快训练速度的场景。
整数 N:固定使用 N 个特征。该参数用于降低模型复杂度,避免过拟合。
max_depth:指定树的最大深度,默认值为 None(不限制深度)。深度越大,树越复杂,越容易过拟合。实际应用中推荐设置为 5-20 之间,需根据数据规模和复杂度调整。

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

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

相关文章

内网安全——出网协议端口探测

在实战中难免会遇到各种各样的情况,其中对于目标主机是否出网这是一个十分值得收集的信息,因为完全不出网你就获取不到主机了 端口 Linux 系统 对于 Linux 系统,探测其允许出网的端口,这里使用的是 Linux 的自带命令,所…

C#WPF实战出真汁13--【营业查询】

1、营业查询介绍本模块是最后一个模块,该板块需要的功能有:营业数据列表,查询数据,导出数据,数据统计。2、UI设计布局TabControl 是 WPF 中用于创建多页标签式界面的控件,常用于组织多个子内容区域。每个子…

基于 Java 和 MySQL 的精品课程网站

基于 Java 和 MySQL 的精品课程网站设计与实现一、 毕业设计(论文)任务书摘要:近年来,教育信息化发展十分迅猛,人们的教育观念、教育手段、学习方法、学习渠道等等都发生了重大的变化。知识性人才也已经日益成为了一个…

全球首款 8K 全景无人机影翎 A1 发布解读:航拍进入“先飞行后取景”时代

全球首款 8K 全景无人机影翎 A1 发布解读:航拍进入“先飞行后取景”时代 特别说明:本文所有图片素材来源于影翎官网 影翎官方介绍称:“全球首款”是指截至 2025 年,A1 是首台全面整合的全景无人机:无需外挂全景相机配件…

androidstudio内存大小配置

help->Edit Custom Vm option-Xmx8096m或者其他数值 改成-Xmx10240m然后设置里面的内存大小也要修改一下

vue3和elementPlus中的el-dropdown-menu中的背景样式修改

1. 效果展示2. 代码展示在el-dropdown-menu下加载类名,class"my-dropdown-menu"<el-dropdown-menu class"my-dropdown-menu"><el-dropdown-item :command"{ action: upgrade, data }">升级</el-dropdown-item><el-dropdown…

计算机网络--HTTP协议

1. 什么是 HTTP 协议全称&#xff1a;Hyper Text Transfer Protocol&#xff08;超文本传输协议&#xff09;作用&#xff1a;用于在服务器与客户端&#xff08;通常是浏览器&#xff09;之间传输超文本数据&#xff08;如文字、图片、视频、音频&#xff09;的应用层协议。工作…

Bee1.17.25更新Bug,完善功能.不支持NOSQL,分库分表Sharding(2.X版有)

Bee 1.17.25 正常的ORM功能都有,但不支持NOSQL, 分库分表Sharding; 若需要可使用2.X版. Bee, 接口简单&#xff0c;功能齐全&#xff0c;性能好&#xff0c;支持原生分页性能更高&#xff1b;还有分库分表 (Sharding 分片) 功能&#xff0c;也支持 MongoDB ORM. Bee Hiberna…

RAG流程全解析:从数据到精准答案

Rag流程分析第一部分&#xff1a;数据处理与向量化 原始文档进入系统&#xff0c;先经过格式识别&#xff0c;把 pdf、docx、pptx、扫描图片等统一转成文字流。文字流丢进分段器&#xff0c;按固定长度或语义边界切成若干文本块&#xff0c;每个块再生成唯一 id。如果文档里有表…

Matplotlib数据可视化实战:Matplotlib图表注释与美化入门

图表注释与标签&#xff1a;提升数据可视化效果 学习目标 通过本课程的学习&#xff0c;学员将掌握如何使用Matplotlib在图表中添加文本注释、图例、标题和轴标签&#xff0c;从而提高图表的可读性和信息传达能力。本课程将通过实际案例&#xff0c;帮助学员理解每个元素的作用…

GitLab 安全漏洞 CVE-2025-7739 解决方案

本分分享极狐GitLab 补丁版本 18.2.2, 18.1.4, 18.0.6 的详细内容。这几个版本包含重要的缺陷和安全修复代码&#xff0c;我们强烈建议所有私有化部署用户应该立即升级到上述的某一个版本。对于极狐GitLab SaaS&#xff0c;技术团队已经进行了升级&#xff0c;无需用户采取任何…

C端高并发项目都有哪些

C端&#xff08;用户端&#xff09;高并发项目通常涉及大规模用户直接访问的服务&#xff0c;其核心挑战是如何在海量用户同时请求下&#xff0c;保证系统的稳定性、高性能、高可用和一致性。以下是一些典型的C端高并发项目类型和具体案例&#xff1a;​核心类型与典型案例&…

OSCP - Proving Grounds - Shenzi

主要知识点 路径爆破小技巧 windows AlwaysInstallElevated 提权 具体步骤 依旧是nmap开始&#xff0c;其中80/443/139/445端口值得关注一下 Starting Nmap 7.94SVN ( https://nmap.org ) at 2025-01-01 15:06 UTC Nmap scan report for 192.168.53.55 Host is up (0.0008…

结合BI多维度异常分析(日期-> 商家/渠道->日期(商家/渠道))

技术手段&#xff1a; BI工具&#xff08;finereport &#xff09;、python、sql 数据更新&#xff1a; 每日零点更新数据。&#xff08;独立开发&#xff09; 商业智能分析平台 | Python/FineReport/SQLAlchemy 项目描述 业务价值 &#xff1a;解决原有系统无法快速定位佣金异…

计算机毕设Spark项目实战:基于大数据技术的就业数据分析系统Django+Vue开发指南

&#x1f393; 作者&#xff1a;计算机毕设小月哥 | 软件开发专家 &#x1f5a5;️ 简介&#xff1a;8年计算机软件程序开发经验。精通Java、Python、微信小程序、安卓、大数据、PHP、.NET|C#、Golang等技术栈。 &#x1f6e0;️ 专业服务 &#x1f6e0;️ 需求定制化开发源码提…

如何让FastAPI任务系统在失败时自动告警并自我修复?

url: /posts/2f104637ecc916e906c002fa79ab8c80/ title: 如何让FastAPI任务系统在失败时自动告警并自我修复? date: 2025-08-20T08:18:42+08:00 lastmod: 2025-08-20T08:18:42+08:00 author: cmdragon summary: FastAPI 和 Celery 结合提供了强大的异步任务处理能力,但在分布…

Gitee仓库 日常操作详细步骤

新建仓库 → 上传代码 步骤1、打开Gitee仓库网站&#xff1a;开源软件 - Gitee.com 步骤2、点击右上角加号 点击新建仓库。 步骤3、设置仓库名 &#xff0c;选择是否开源 &#xff0c;点击创建。 步骤4、记住远程仓库URL 步骤5、本地新建文件夹&#xff0c;然后进行上传代码…

Python采集易贝(eBay)商品详情API接口,json数据返回

Python采集易贝(eBay)商品详情API接口要采集eBay商品详情&#xff0c;你可以使用eBay官方提供的API。以下是使用Python通过eBay Finding API获取商品详情的完整示例&#xff1a;准备工作注册账号并获取API密钥&#xff1a;选择适合的API&#xff08;如Finding API、Shopping AP…

如何将任意文件一键转为PDF?

无论你用什么软件打开文件&#xff08;Word、Excel、网页、CAD图纸、图片等&#xff09;&#xff0c;只要能打印&#xff0c;就可以通过虚拟打印机将其转为PDF&#xff0c;确保对方收到的文件看起来和你看到的一模一样。它是小巧实用的PDF虚拟打印工具&#xff0c;采用安装包形…

迁移学习+多模态融合破解跨域难题,解锁视觉感知新范式

在近期的顶会顶刊中&#xff0c;迁移学习与多模态融合的热度居高不下&#xff0c;相关成果频出&#xff0c;部分模型在特定任务里性能提升极为显著。登上顶刊 TPAMI 2025 的某篇研究&#xff0c;借助语言引导的关系迁移&#xff0c;大幅提升了少样本类增量学习中模型的泛化能力…