1. 简介

在本篇文章中,我们将介绍信息增益(Information Gain)这一概念。它与信息论(Information Theory)中的一个核心概念——熵(Entropy)密切相关,并在机器学习、数据压缩、通信等多个领域有广泛应用。

信息增益是决策树算法(如 ID3、C4.5)中用于特征选择的重要指标。它衡量的是某个特征对数据集分类能力的提升程度。

2. 信息与不确定性

从直观上讲,信息是指任何能够增加我们对某个系统、过程或现象认知的内容。而知识可以看作是不确定性的反面。我们越不确定,说明我们掌握的信息越少;反之,信息越多,不确定性就越低。

因此,信息的本质是减少不确定性

2.1 示例:不确定性与信息

考虑一个不透明的盒子,里面有 1 个红球和 2 个白球。从中随机抽取一个球,抽到红球的概率是 1/3,白球的概率是 2/3。我们可以用如下概率分布来表示:

$$ \begin{pmatrix} \text{红} & \text{白} \ \frac{1}{3} & \frac{2}{3} \end{pmatrix} $$

如果我们被告知“有人抽到了红球”,那红球的概率变为 0,白球为 1:

$$ \begin{pmatrix} \text{红} & \text{白} \ 0 & 1 \end{pmatrix} $$

此时我们接收到的信息量就是这两个概率分布之间不确定性的差异,也就是熵的差值

2.2 熵的定义

在信息论中,熵 $ H(p_1, p_2, ..., p_n) $ 是衡量不确定性的一种度量。它满足以下三个性质:

  • 连续性:概率分布的微小变化不会引起熵的剧烈波动。
  • 单调性:当所有概率相等时,熵随着事件数量 $ n $ 的增加而增加。
  • 可分解性:熵可以按子集加权求和,结果不变。

满足这些性质的唯一函数是:

$$ H(p_1, p_2, ..., p_n) = -\sum_{i=1}^{n} p_i \log_2 p_i $$

其中对数通常使用二进制底数,单位为 bit。

2.3 信息量等于熵的差值

我们可以用熵来量化信息的大小。设:

  • $ S $ 表示我们在获得信息前的信念系统;
  • $ S|z $ 表示获得信息 $ z $ 后的信念系统;
  • $ H(S) $ 和 $ H(S|z) $ 分别表示前后状态的熵。

则信息 $ z $ 的“信息量”为:

$$ AI(z) = H(S) - H(S|z) $$

如果熵减少,说明不确定性降低,信息是有用的;反之,熵增加,说明信息反而增加了不确定性。

2.4 示例:计算信息量

假设我们得知某人抽到了红球,初始熵为:

$$ H\left(\frac{1}{3}, \frac{2}{3}\right) = -\frac{1}{3}\log_2\frac{1}{3} - \frac{2}{3}\log_2\frac{2}{3} \approx 0.918 $$

之后的熵为:

$$ H(0, 1) = 0 $$

所以信息量为:

$$ 0.918 - 0 = 0.918 $$

如果我们得知的是白球,则新的概率分布为:

$$ \begin{pmatrix} \text{红} & \text{白} \ \frac{1}{2} & \frac{1}{2} \end{pmatrix} $$

对应的熵为:

$$ H\left(\frac{1}{2}, \frac{1}{2}\right) = 1 $$

此时信息量为:

$$ 0.918 - 1 = -0.082 $$

⚠️ 这说明并非所有信息都能减少不确定性。负值表示信息反而增加了不确定性。

3. 信息增益的定义与应用

信息增益(Information Gain)是机器学习中,特别是决策树构建过程中非常关键的概念。它用来衡量某个特征对分类结果的“区分能力”。

3.1 决策树简介

在决策树中,每个内部节点对应一个特征的判断条件,每个叶子节点对应一个类别。构建决策树的核心问题是:在当前节点,选择哪个特征进行判断最有利于分类?

信息增益就是回答这个问题的关键。

3.2 信息增益的定义

给定一个数据集 $ S $ 和一个特征 $ a $,假设特征 $ a $ 有 $ m $ 个取值:$ a_1, a_2, ..., a_m $,且每个取值在数据集中出现的频率为 $ p_i $。

信息增益定义为:

$$ IG(a) = H(S) - \sum_{i=1}^{m} p_i H(S|a=a_i) $$

其中:

  • $ H(S) $:当前数据集的熵;
  • $ H(S|a=a_i) $:在特征 $ a $ 取值为 $ a_i $ 时的子集的熵;
  • $ p_i $:特征 $ a $ 取值为 $ a_i $ 的频率。

✅ 信息增益越大,说明该特征划分后的子集越“纯净”,即分类效果越好。

3.3 示例:计算信息增益

我们有如下数据集 $ S $,其中包含两个二元特征 $ a $、$ b $ 和类别标签:

a | b | class
0 | 0 | positive
0 | 1 | positive
1 | 0 | negative
1 | 1 | positive
0 | 0 | negative

目标是判断在当前节点,选择特征 $ a $ 还是 $ b $ 更好。

步骤 1:计算当前数据集的熵

正样本 2 个,负样本 3 个:

$$ H(S) = -\frac{2}{5} \log_2 \frac{2}{5} - \frac{3}{5} \log_2 \frac{3}{5} \approx 0.971 $$

步骤 2:分别计算特征 $ a $ 和 $ b $ 的信息增益

特征 $ a $:

  • $ a = 0 $:正样本 2,负样本 1 → $ H(S|a=0) = 0.918 $
  • $ a = 1 $:正样本 1,负样本 1 → $ H(S|a=1) = 1 $

出现频率:

  • $ P(a=0) = 3/5 = 0.6 $
  • $ P(a=1) = 2/5 = 0.4 $

信息增益:

$$ IG(a) = 0.971 - (0.6 \cdot 0.918 + 0.4 \cdot 1) = 0.0202 $$

特征 $ b $:

  • $ b = 0 $:正样本 2,负样本 1 → $ H(S|b=0) = 0.918 $
  • $ b = 1 $:正样本 1,负样本 0 → $ H(S|b=1) = 0 $

出现频率:

  • $ P(b=0) = 3/5 = 0.6 $
  • $ P(b=1) = 2/5 = 0.4 $

信息增益:

$$ IG(b) = 0.971 - (0.6 \cdot 0.918 + 0.4 \cdot 0) = 0.4202 $$

✅ 因为 $ IG(b) > IG(a) $,所以选择特征 $ b $ 作为当前节点的判断条件更优。

3.4 信息增益的性质

  • 非负性:整体信息增益不会为负,尽管某些子集的信息量可能为负。
  • 偏向于多值特征:当特征取值较多时,信息增益倾向于更大,因此在实际应用中可能会使用信息增益率(Gain Ratio)来修正这一偏差。

4. 总结

  • 信息增益是通过计算划分前后熵的差值来衡量特征对分类的贡献。
  • 在决策树中,我们选择信息增益最大的特征进行划分,以获得最“纯净”的子集。
  • 信息增益的计算依赖于,而熵是对不确定性的度量。
  • 虽然信息增益在理论上很直观,但在实际使用中需要注意其对多值特征的偏好问题。

✅ 信息增益是构建决策树的核心思想之一,理解它有助于我们更好地掌握机器学习中特征选择的原理。


原始标题:Information Gain in Machine Learning