信息增益(Information Gain)是决策树选择最优分裂特征的核心指标,它衡量的是 “使用某个特征分裂后,数据的不纯度(熵)降低了多少”。

降低得越多,说明这个特征的分类价值越高,越适合作为当前节点的分裂依据。


一、先明确数据集

我们用 10 个样本的训练数据,

特征包括 “耳朵形状”“脸型”“胡须”,

标签是 “是否为猫(1 = 是,0 = 否)”:

样本 ID 耳朵形状 脸型 胡须 是否为猫
1 尖的 圆的 存在 1
2 尖的 圆的 存在 1
3 尖的 不圆的 存在 1
4 尖的 圆的 不存在 1
5 尖的 不圆的 不存在 0
6 下垂的 圆的 存在 1
7 下垂的 不圆的 存在 0
8 下垂的 圆的 不存在 0
9 下垂的 不圆的 不存在 0
10 下垂的 不圆的 不存在 0

总样本数

10 个正例(是猫):样本 1、2、3、4、6 → 共 5 个

负例(不是猫):样本 5、7、8、9、10 → 共 5 个


二、信息增益的计算公式

信息增益 = 父节点的熵(分裂前的不纯度) - 子节点的加权熵之和(分裂后的不纯度)

用公式表示:

其中:

  • IG(A):特征A的信息增益
  • H(D):父节点(分裂前所有样本)的熵
  • Values(A):特征A的所有可能取值(如 “耳朵形状” 的取值为 “尖的”“下垂的”)
  • Dv​:特征A取值为v的子样本集(如 “耳朵形状 = 尖的” 的样本子集)
  • ∣Dv​∣:子样本集Dv​的样本数
  • ∣D∣:父节点总样本数(∣D∣=10)
  • ∣Dv∣/∣D​∣​:子样本集Dv​的权重(占总样本的比例)

三、分步计算过程(以 “耳朵形状” 为例)

我们以 “耳朵形状” 这个特征为例,完整计算它的信息增益。

步骤 1:计算父节点的熵H(D)

父节点是分裂前的所有样本(10 个),其中:

  • 正例比例 p1​=5/10​=0.5(5 个是猫)
  • 负例比例 p0​=1−p1​=0.5(5 个不是猫)

熵的公式(二分类):

代入计算:

因为 log2​(0.5)=−1,

所以:

步骤 2:按特征 “耳朵形状” 分裂,得到子样本集

“耳朵形状” 有两个取值:“尖的” 和 “下垂的”,对应两个子样本集:

  • 子样本集D1​(耳朵形状 = 尖的):样本 1-5 → 共 5 个其中正例(是猫):样本 1-4 → 4 个;负例:样本 5 → 1 个正例比例;负例比例

  • 子样本集D2​(耳朵形状 = 下垂的):样本 6-10 → 共 5 个其中正例(是猫):样本 6 → 1 个;负例:样本 7-10 → 4 个正例比例 ;负例比例 

步骤 3:计算每个子样本集的熵H(Dv​)

分别计算D1​和D2​的熵:

  • 子样本集D1​的熵H(D1​):

  • 查表或计算:

  • 代入:

  • 子样本集D2​的熵H(D2​):

  • 和D1​对称,结果相同:H(D2​)≈0.72

步骤 4:计算子节点的加权熵之和

每个子样本集的权重是其样本数占总样本数的比例:

  • D1​的权重:
  • D2​的权重:

加权熵之和 = 

步骤 5:计算 “耳朵形状” 的信息增益

信息增益 = 父节点熵 - 加权熵之和耳朵形状


四、再计算 “脸型” 的信息增益(对比验证)

为了更清晰,我们再计算 “脸型” 的信息增益,对比两者的差异。

步骤 1:父节点熵H(D)仍为 1(和之前相同)

步骤 2:按 “脸型” 分裂,得到子样本集

“脸型” 的取值为 “圆的” 和 “不圆的”:

  • D1​(脸型 = 圆的):样本 1、2、4、6、8 → 共 5 个?

  • (仔细数:样本 1(圆)、2(圆)、4(圆)、6(圆)、8(圆)→ 共 5 个?

  • 不对!原数据中样本 6 的脸型是 “圆的”,样本 8 的脸型是 “圆的”,所以总共有 5 个?

  • 哦不,原数据样本 1-10 中:脸型 = 圆的样本:1、2、4、6、8 → 共 5 个?

  • 其中正例(是猫):样本 1、2、4、6 → 4 个;

  • 负例:样本 8 → 1 个正例比例 =4/5=0.8,负例比例 0.2

  • D2​(脸型 = 不圆的):样本 3、5、7、9、10 → 共 5 个其中正例:样本 3 → 1 个;

  • 负例:样本 5、7、9、10 → 4 个正例比例=1/5=0.2,负例比例 0.8

步骤 3:计算子节点的熵

步骤 4:加权熵之和

D1​和D2​各占 5 个样本,权重都是 0.5:加权熵之和 = 0.5×0.72+0.5×0.72=0.72

步骤 5:信息增益

脸型?(这里发现之前的计算有误!原数据中 “脸型 = 圆的” 实际是样本 1、2、4、6、8 共 5 个,其中正例 4 个,负例 1 个,所以信息增益和 “耳朵形状” 相同?但原数据可能我之前统计错了,实际需要严格按样本数计算。)

修正原数据统计:重新数 “脸型 = 圆的” 样本:样本 1(圆)、2(圆)、4(圆)、6(圆)→ 共 4 个?样本 8 的脸型是 “圆的” 吗?原表格中样本 8 的脸型是 “圆的”,所以是 5 个。正例是样本 1、2、4、6(4 个),样本 8 是负例(0),所以确实 4 正 1 负。

因此,“脸型” 的信息增益也是 0.28?这说明在这个数据集中,“耳朵形状” 和 “脸型” 的分裂价值相同(实际数据可能需要更精确的统计)。


五、信息增益的核心逻辑总结

  1. 本质:信息增益越大,说明用这个特征分裂后,数据的 “混乱程度” 下降得越多,分类效果越好。
  2. 计算步骤:① 算分裂前的总熵(父节点熵);② 按特征的每个取值拆分样本,得到子样本集;③ 算每个子样本集的熵;④ 用子样本集的权重(样本比例)计算加权熵之和;⑤ 总熵 - 加权熵之和 = 信息增益。
  3. 决策树选择:在所有候选特征中,选择信息增益最大的特征作为当前节点的分裂特征。
Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐