机器学习:决策树三兄弟 ID3、C4.5、CART 详解
机器学习中的三种经典决策树算法:ID3、C4.5 和 CART。通过具体数值案例,阐述了熵、信息增益、增益率及基尼指数的计算原理与应用场景。对比了各算法在特征选择标准、分支方式及对多值特征的偏好上的差异,帮助读者理解决策树构建的核心逻辑与指标含义。

机器学习中的三种经典决策树算法:ID3、C4.5 和 CART。通过具体数值案例,阐述了熵、信息增益、增益率及基尼指数的计算原理与应用场景。对比了各算法在特征选择标准、分支方式及对多值特征的偏好上的差异,帮助读者理解决策树构建的核心逻辑与指标含义。

学习决策树最容易卡在三个地方:
本文聚焦三种经典决策树算法,并用带数字的例子把指标讲透。
决策树是一种树形结构模型:
决策树的建模流程通常是:
生活中的类比也很好理解:比如'相亲决策树',可能会按'年龄→长相→收入→是否公务员…'一步步筛选,本质也是在不断'缩小不确定性'。
训练一棵树的关键问题只有一个:
当前节点到底选哪个特征来划分,才能让数据变得更'纯'?
于是就出现了三套'衡量纯度/划分好坏'的标准:
下面逐个讲清楚。
信息熵衡量不确定性/混乱程度:
公式(了解含义即可):
说明:log 的底数取 2(bit)或 e(nat)都可以,只是数值尺度不同,比较大小、选特征的结论不变。
ABCDEFGH(8 种符号,每个概率 1/8)
AAAABBCD
✅ 结论:α 更乱(熵更大),β 更集中(熵更小)。
信息增益的定义:
划分前的熵 − 划分后的条件熵(加权平均)

其中条件熵:

有 6 个样本,目标值只有 A/B 两类:
| 样本 | 特征 a | 目标值 |
|---|---|---|
| 1 | α | A |
| 2 | α | A |
| 3 | β | B |
| 4 | α | A |
| 5 | β | B |
| 6 | α | B |
(1) 先算整体熵 H(D)
整体:3A、3B

(2) 按特征 a 划分后:算各子集熵
AAAB(3A,1B)
BB(纯)
(3) 条件熵 H(D|a):加权平均

(4) 信息增益
Gain(D,a)=1−0.54=0.46
✅ 结论:特征 a 的信息增益是 0.46,说明它让数据'不确定性减少很多',值得优先用来分裂。
ID3 有一个非常典型的问题:
偏爱'取值很多'的特征(比如用户 ID、订单号这类几乎每条都不同的字段)
因为取值多容易把数据切得很碎,看起来很'纯',但实际上容易过拟合。
C4.5 的核心思想:
用 增益率 替代信息增益:对'取值多'的特征加惩罚。

其中 IV(A)(固有值/特征熵):

直觉理解:
还是同样 6 条样本:
特征 a:


特征 b:


✅ 结论:C4.5 选择 a(0.50 > 0.39),从而避免了 ID3 盲目选择'取值多'的 b。
CART(Classification And Regression Tree)非常常见。这里第一部分只讲它在分类场景下的核心:基尼指数最小化。(回归树我放到第二部分详细讲。)
基尼指数:

直觉理解:
从节点中随机抽 2 个样本,它们类别不同的概率。
越小表示越不容易抽到不同类别 → 越纯。
CART 的特征选择标准:
选择使'划分后加权 Gini 最小'的特征/切分点
假设'是否拖欠贷款'是目标(yes/no),现在计算特征'是否有房'划分的效果:
无房:7 个样本,4no, 3yes

有房:3 个样本,全是 no(3no, 0yes)

加权后的划分基尼:

✅ 结论:这个划分的 Gini ≈ 0.343。
CART 对多值特征通常做二叉切分(把类别分成两组),比如:
假设:
非 married:6 个样本,3no 3yes →

加权:
✅ 结论:0.3 < 0.343,说明'婚姻状况这样二分'比'是否有房'更好。
连续变量(年收入)在 CART 的处理方式很固定:
课件示例中,年收入候选点中能得到最小 Gini(如 0.3),对应阈值例如 97.5 等。
| 算法 | 核心指标 | 选择规则 | 分支方式 | 典型特点 |
|---|---|---|---|---|
| ID3 | 信息增益 | 越大越好 | 多叉 | 简单直观,但偏爱取值多特征 |
| C4.5 | 增益率 | 越大越好 | 多叉 | 用惩罚项修正 ID3 的多值偏好 |
| CART | 基尼指数 | 越小越好 | 二叉 | 工程常见;对类别特征常二分组合,对连续特征找阈值 |
本文把三兄弟的'核心指标'用例子讲清楚了:
后续可进一步探讨 Titanic 生存预测实战、CART 回归树(平方误差)、剪枝(预剪枝/后剪枝)与过拟合等内容。

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online
生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online
基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online
解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online