← 返回题目列表

信息熵、信息增益、信息增益比、基尼指数分别是什么?

高频 困难 第 15 / 25 题 更新于 2026/09/25
决策树信息熵信息增益基尼指数
学习 AI 实战项目

简化版

这些量用于衡量节点或切分的不纯度变化。熵刻画类别分布不确定性;信息增益是父熵减去子节点加权熵,经典 ID3 取最大;增益率用信息增益除以分支比例的 SplitInfo,C4.5 还配合候选筛选启发式,缓解多值偏好但并非彻底消除;Gini 1-Σpₖ² 是另一种不纯度,经典 CART 分类树最小化切分后的加权 Gini。Gini 不含对数、计算形式简单,但两种指标不保证选出相同切分,也不能把 CART 的选择只归因为速度。

详细版

信息熵(Entropy):

H(D) = - Σ pₖ log₂ pₖ      (pₖ 是第 k 类样本的占比)
  • 全属一类时 H=0(最纯);各类均匀时 H 最大(最混乱)。二分类下 H∈[0,1]。

信息增益(Information Gain,ID3):

Gain(D, a) = H(D) - Σ (|Dv|/|D|)·H(Dv)
           = 分裂前熵 - 分裂后各子集加权熵
  • 增益越大,说明用特征 a 分裂后不确定性下降越多 → 越该选它。

信息增益比(Gain Ratio,C4.5):

GainRatio(D,a) = Gain(D,a) / IV(a)
IV(a) = - Σ (|Dv|/|D|) log₂(|Dv|/|D|)   (特征 a 的固有值/分裂信息)
  • 除以 IV(a) 惩罚「取值特别多」的特征,修正信息增益的偏好缺陷。

基尼指数(Gini,CART):

Gini(D) = 1 - Σ pₖ²      基尼越小越纯
分裂后: Gini_index(D,a) = Σ (|Dv|/|D|)·Gini(Dv)  → 选最小
  • 不用 log,计算比熵快;含义是「随机抽两个样本类别不同的概率」。

完整版教学

一、共同目标:量化「纯度」,指导选特征

决策树每次分裂要选一个「最好」的特征,标准是分裂后子节点尽量纯。要做这个选择,先得能量化「一个集合有多纯/多不纯」。信息熵和基尼指数就是两把「不纯度的尺子」,信息增益、增益比则是「用这把尺子衡量某次分裂带来多少纯度提升」。理解它们,就理解了 ID3/C4.5/CART 的分裂内核。

二、信息熵:衡量「混乱/不确定」

信息熵来自信息论,衡量一个系统的不确定性:

H(D) = - Σₖ pₖ log₂ pₖ

pₖ 是集合 D 中第 k 类样本的比例。直觉理解:

  • 全是一类(如 100% 正类):H = -1·log₂1 = 0,最纯、无不确定性。
  • 两类各半(50%/50%):H = -(½log₂½ + ½log₂½) = 1,最混乱、不确定性最大(二分类下熵取最大值 1)。
  • 越接近均匀分布,熵越大;越偏向某一类,熵越小。

所以熵大 = 混乱 = 不纯,熵小 = 有序 = 纯。决策树想把熵降下来。

三、信息增益:分裂让不确定性下降多少(ID3)

有了熵,就能衡量一次分裂的「收益」——信息增益:

Gain(D, a) = H(D) - Σᵥ (|Dv|/|D|)·H(Dv)
             └分裂前的熵┘   └分裂后各子集熵的加权平均┘
  • 第一项是分裂前整个集合的混乱度。
  • 第二项是用特征 a 分裂后,各子集的混乱度按样本占比加权求和。
  • 两者之差 = 分裂消除了多少不确定性 = 信息增益。

ID3 算法就是每次选信息增益最大的特征分裂——哪个特征分完后最”降混乱”,就用哪个。

举例:用「是否有房」分裂后,两个子集几乎各自纯净(有房的都还款、没房的都违约),熵大幅下降 → 信息增益大 → 优先选它。

四、信息增益的缺陷:偏向取值多的特征(C4.5 的动机)

信息增益有个著名缺陷:它天然偏爱「取值数目多」的特征。

极端例子:用「身份证号」当特征。每个样本的身份证号都不同,用它分裂后每个子集只有一个样本、纯度 100%、熵=0,信息增益达到最大!但「身份证号」显然是毫无泛化意义的特征——它只是把每个样本单独隔开,学到的是噪声,换新数据完全没用。

根本原因:取值越多的特征,分出的子集越小越纯,信息增益虚高。这会诱导 ID3 选出这种「假聪明」的特征而过拟合。

五、信息增益比:惩罚取值多的特征(C4.5)

为修正上述缺陷,C4.5 改用信息增益比:

GainRatio(D, a) = Gain(D, a) / IV(a)

其中 IV(a)(固有值 / 分裂信息) 衡量特征 a 自身取值的分散程度:

IV(a) = - Σᵥ (|Dv|/|D|) log₂(|Dv|/|D|)
  • 特征取值越多、越分散,IV(a) 越大。
  • 用信息增益除以 IV(a),相当于给取值多的特征打折——身份证号那种 IV 极大,增益比被拉低,不再被青睐。

注意:增益比又矫枉过正地偏向取值少的特征。所以 C4.5 实际用启发式:先找信息增益高于平均的特征,再从中选增益比最高的——两者结合。

六、基尼指数:经典 CART 的分类不纯度

CART 用基尼指数衡量不纯度:

Gini(D) = 1 - Σₖ pₖ²

含义:从 D 中随机抽两个样本,它们类别不同的概率。

  • 全一类:Gini = 1 - 1² = 0,最纯。
  • 两类各半:Gini = 1 - (½²+½²) = 0.5,最不纯。

分裂时选分裂后加权基尼指数最小的特征:

Gini_index(D, a) = Σᵥ (|Dv|/|D|)·Gini(Dv)   → 越小越好

Gini 的工程与算法特点:

  • 不含 log,只需类别概率平方和,便于增量统计;在某些实现中计算更省。
  • 基尼和熵在二分类下曲线形状相近,候选排序经常相似,但不保证相同。
  • CART 固定二叉分裂并以 Gini 定义经典分类准则;这是算法定义与工程便利的组合,不是“速度更快所以唯一正确”。

七、三者对比与常见追问

指标算法特点
信息增益ID3偏向取值多的特征
信息增益比C4.5修正上述偏好,但偏向取值少
基尼指数CART不用 log、计算快、二叉
  • 熵和基尼选哪个? 先采用实现的合理默认,再在相同验证流程下比较;现代实现中 log 未必是总训练成本瓶颈,不能只按“追求速度”机械选择。
  • 为什么信息增益偏向多值特征? 多取值 → 子集更碎更纯 → 增益虚高(身份证号例子)。
  • 基尼指数为什么不用 log 也能衡量不纯? 1-Σp² 可解释为按节点分布独立抽取两个标签时不同类的概率;它与熵有相同的纯度端点和相近排序,但不是简单等同的公式。
  • 回归树用什么? 不用熵/基尼,用平方误差(方差) 衡量不纯度(详见回归树专题)。

八、把信息增益、增益率和 Gini 放进同一算例

父节点 8 个样本正负各 4,熵为 1、Gini 为 0.5。某二值切分产生 [3正,1负] 与 [1正,3负],子节点熵都约 0.811,加权后信息增益约 0.189;子节点 Gini 都是 0.375,Gini 下降 0.125。若特征有 8 个唯一值,信息增益可到 1,但 SplitInfo 为 3,增益率只有约 0.333。

Gain(D, A) = H(D) - sum_v |D_v|/|D| * H(D_v)
GainRatio(D, A) = Gain(D, A) / SplitInfo(D, A)
Gini(D) = 1 - sum_k p_k^2
对象/方案核心机制选择或风险
信息增益父熵减子熵加权和偏好候选分支多的特征
增益率增益除以 SplitInfo需防止偏好分裂信息极小的特征
Gini 下降父 Gini 减子 Gini 加权和CART 分类常用
候选切分 → 统计每个子节点类别比例
          → 用同一指标算加权下降 → 选最大有效下降

记忆钩子:增益率分母是这次分裂产生的分支分布 SplitInfo,不是目标标签熵,也不是特征取值本身随便算一个熵。

九、常见误区与追问

  • 误区:信息增益率就是信息增益除以标签熵。 分母是分支样本比例形成的 SplitInfo。
  • 误区:增益率彻底消除了特征取值数偏差。 它可能转而偏好 SplitInfo 很小的切分,C4.5 还要做候选筛选。
  • 追问:对数底数会改变最优特征吗? 同一轮统一底数只做比例缩放,通常不改变排序。
  • 追问:样本权重怎么进入公式? 用权重和替代样本数计算类别比例与子节点占比。
  • 追问:回归树为什么不用分类熵? 连续目标没有类别比例,通常直接比较平方误差等回归损失下降。

十、加强记忆

这些指标都服务于选择能降低子节点不纯度的切分。熵 H=-Σpₖlog₂pₖ 在纯节点为 0、均匀分布时最大;信息增益是父熵减子熵加权和,ID3 取最大,但会偏好多候选/多值特征。增益率用增益除以 SplitInfo,C4.5 还需候选筛选以避免极小分母。Gini 1-Σpₖ² 是经典 CART 的分类不纯度,不含 log 且易计算;它与熵常相近却不等价。回归树没有类别比例,通常比较平方误差或其他回归损失下降。