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. 总结
- 信息增益是通过计算划分前后熵的差值来衡量特征对分类的贡献。
- 在决策树中,我们选择信息增益最大的特征进行划分,以获得最“纯净”的子集。
- 信息增益的计算依赖于熵,而熵是对不确定性的度量。
- 虽然信息增益在理论上很直观,但在实际使用中需要注意其对多值特征的偏好问题。
✅ 信息增益是构建决策树的核心思想之一,理解它有助于我们更好地掌握机器学习中特征选择的原理。