决策树的笔记

一、基础准备

有 5 条样本数据,每条样本包含 "不浮出水面是否可以生存""是否有脚蹼" 这 2 个特征,最终要判断的目标是 "属于鱼类" 的结果(是或否 ),我们的任务就是基于这些特征,构建能判断是否为鱼类的决策逻辑树。

二、计算总熵(数据集整体不确定性)

熵用来衡量数据的混乱、不确定程度。对于 "属于鱼类" 这个目标,数据里 "是" 的有 2 条,"否" 的有 3 条 。按照熵的计算公式:D)=−∑i=1n​pi​log2​(pi​)

是类别占比 ),算出总熵约为 0.971 。这说明数据集本身因为类别分布不均(不是全是或全否 ),存在一定不确定性。

三、计算条件熵与信息增益(选最优特征)

对每个特征("不浮出水面是否可以生存" 和 "是否有脚蹼" ),都要做以下操作:

  1. 拆分数据集:按照特征的不同取值,把原数据集拆成多个子集。比如 "不浮出水面是否可以生存" 取值为 "是" 时,对应样本 1、2、3;取值为 "否" 时,对应样本 4、5 。
  2. 算子集熵:对每个子集,计算其内部 "属于鱼类" 的熵(算法同总熵 ),衡量子集内部的不确定性。像 "不浮出水面是否可以生存" 取值 "是" 的子集里,"属于鱼类" 是 2 条、否 1 条,算出这个子集熵约 0.918 ;取值 "否" 的子集里,"属于鱼类" 全否,熵就是 0 。
  3. 算条件熵:把各子集的熵,按照子集在原数据集中的占比加权平均,得到该特征的条件熵。"不浮出水面是否可以生存" 的条件熵约 0.551 ,"是否有脚蹼" 的条件熵约 0.8 。
  4. 算信息增益:用总熵减去条件熵,得到的差值就是信息增益,它衡量的是用这个特征分类后,数据不确定性降低了多少。"不浮出水面是否可以生存" 信息增益约 0.42 ,"是否有脚蹼" 约 0.171 。我们选信息增益大的特征(这里就是 "不浮出水面是否可以生存" )作为当前构建决策树的节点,因为它对降低不确定性、分类更有帮助。

四、递归构建子树

选好根节点("不浮出水面是否可以生存" )后,按其特征取值拆分出不同子集,对每个子集继续上述流程:

  • 对于 "不浮出水面是否可以生存" 取值 "否" 的子集(样本 4、5 ),发现里面 "属于鱼类" 全是 "否",类别纯净,直接作为决策树的叶节点(结果就是否 )。
  • 对于取值 "是" 的子集(样本 1、2、3 ),此时还剩 "是否有脚蹼" 这个特征可用,重复计算条件熵、信息增益的步骤,基于这个子集选最优特征,继续拆分,直到所有子集类别都纯净(全是或全否 ),不能再分。

五、形成决策树

最终构建出的决策树,根节点是 "不浮出水面是否可以生存",往下分支后,对需要继续判断的分支,用 "是否有脚蹼" 等剩余特征接着分,形成一个树状的判断流程。比如从根节点 "不浮出水面是否可以生存" 选 "是",就走到 "是否有脚蹼" 的判断,脚蹼是就判定属于鱼类,脚蹼否就判定不属于,以此类推,把原本零散的数据规律,转化成了清晰、可一步步执行的决策规则 。

总的来说,这整个过程就是用数学方法(信息增益等 )从数据里挑出最关键的分类特征,然后一层一层递归拆分,把 "是否是鱼类" 的判断变成可视化、可解释的树状逻辑,是从实际数据中归纳分类规则、做决策判断的一种典型思路,能帮我们把复杂的分类问题,拆解成简单的步骤化判断,其中信息增益越大代表熵越小结果越准确 。

相关推荐
Better Bench8 小时前
《八十天环游地球》阅读笔记
笔记·读书笔记·八十天环游地球
sheeta19988 小时前
LeetCode 每日一题笔记 日期:2026.04.21 题目:1722. 执行交换操作后的最小汉明距离
笔记·算法·leetcode
阿Y加油吧9 小时前
两道 LeetCode 题的复盘笔记:从「只会暴力」到「懂优化」
笔记·算法·leetcode
chudonghao10 小时前
[UE学习笔记][基于源码] 控制器、Pawn、相机的控制关系
笔记·学习·ue5
Qinn-11 小时前
【工作笔记】锁等待超时错误 排查
笔记
LeeeX!11 小时前
【OpenClaw最新版本】 命令行备忘录:高频操作与实战技巧
笔记·aigc·openclaw
羊群智妍11 小时前
2026免费GEO工具,AI搜索优化一步到位
笔记
Leah-12 小时前
Web项目测试流程
笔记·学习·web·测试·复盘
Qinn-12 小时前
【学习笔记】软考系统分析师计算机系统计算题考点
笔记
以梦为马无处可栖13 小时前
AxVisor 深度学习笔记-ARM 虚拟化硬件原理
arm开发·笔记·深度学习