周末聚会,小美和小杰玩“你比我猜”。小杰在手机上看了一个动物名词,小美要在三十秒内猜出来。小杰不能直接说答案,只能回答“是/否”式的问题。游戏一开始,小美的脑子里跑过几百种动物——天上飞的、地上跑的、水里游的,完全没头绪。她问:“它身上有毛吗?”小杰点头。小美立刻划掉一大半选项。又问:“它生活在陆地上吗?”又划掉一半。三四个问题之后,答案呼之欲出。 信息论问了一个数学问题:一个“是/否”的回答,到底帮小美消除了多少不确定性?这个“消除量”就是信息增益;而当问题与答案之间共享的信息量被正式度量时,它叫互信息。这两个名字在机器学习里几乎总是成对出现:决策树靠它决定先问哪个问题,特征选择靠它挑出最有价值的信号。小美猜动物玩得好不好,和她选的每个问题是否“信息量足”直接相关——而这套逻辑,正是无数 AI 模型从数据中学出规律的底层直觉。

岗位关联

互信息是连接“信息熵”与“机器学习实践”的第一颗螺丝钉:学完它,你将真正看懂决策树为什么这样选特征,也能用一套统一的语言去评价“哪个特征更值钱”。

目录
  1. 可视化演示
  2. 互信息的定义:三种等价算法
  3. 联合熵与条件熵:游戏的两个基础参数
  4. 维恩图关系:信息重叠地带
  5. 基本性质:默契的两条铁律
  6. 决策树ID3:猜词冠军的提问策略
  7. 特征选择实战:问题库的瘦身术
  8. 信息瓶颈:暗号要短,更要准
  9. AI 应用场景
  10. Python 演示
  11. 常见误区
  12. 面试题

可视化演示

展示系统处理流水线、实时性能指标曲线及多方案对比分析,包含数据流转、吞吐延迟监控与方案评估。

本节配有交互动效(进入视口后自动加载,约 3KB)。

系统可视化 处理流程:输入→处理→模型→输出 性能监控:实时指标 P=L×T

互信息的定义:三种等价算法

小美最怕一种情况:小杰在心里想好了动物,却只给出“它存在”这种废话提示。这种提示不消除任何不确定性——听完和没听一样。反之,如果小杰说“它全身毛茸茸而且有四条腿”,小美脑子里立刻浮现猫狗之类的小动物。提示的价值,恰恰在于它消除了多少“可能性”。

信息论给“可能性”起了一个名字:信息熵 H(X),它衡量随机变量 X 的不确定程度。小杰心里的动物就是 X,小美的把握可以用熵来量化。提示 Y 出现后,条件熵 H(X|Y) 描述“知道了提示后还剩多少不确定”。两者一减,H(X) − H(X|Y),就是这个提示真正带来的信息量,我们叫它互信息 I(X;Y)。

互信息有三种等价的表达方式。第一种是定义式,从联合分布 p(x,y) 与边缘分布 p(x)、p(y) 的比值出发,统计“两个变量联合出现”比“各自独立出现”多出多少信息:

第二种表达是熵差式,它直接从“不确定性减少”的角度看问题:

三种方式就像用尺子、绳子和脚步去量同一段路,结果必然一致。对小美来说,这个数值就是“默契值”:她选的问题和她想猜的答案之间,到底共享了多少信息。接下来我们把这个默契值拆开,看看它由哪些原材料组成。

I(X;Y)=∑x∈X∑y∈Yp(x,y)log⁡2p(x,y)p(x)p(y)\displaystyle I(X;Y) = \sum_{x\in\mathcal{X}}\sum_{y\in\mathcal{Y}} p(x,y) \log_2 \frac{p(x,y)}{p(x)p(y)}
左边表示“知道 Y 后 X 的不确定性减少了多少”,右边表示“知道 X 后 Y 的不确定性减少了多少”——两者数值完全一样。
  1. 原始不确定度H(X) 是在任何提示之前,小美对答案 X 的完全不确定程度。
    H(X)\displaystyle H(X)
  2. 剩余不确定度H(X|Y) 是听了提示 Y 之后,小美还剩下的不确定程度。
    H(X∣Y)\displaystyle H(X|Y)
  3. 两者相减被消除的那一部分,就是从提示中获得的净信息量,也就是互信息。
    H(X)−H(X∣Y)\displaystyle H(X) - H(X|Y)

联合熵与条件熵:游戏的两个基础参数

如果小杰不只想一个动物,而是想“动物+颜色+地点”三个词,小美要猜的联合事件 H(X,Y) 的复杂度就一下子变大了。联合熵 H(X,Y) 就是“几个变量合在一起时的不确定性总量”,公式与单变量熵类似,只是把求和扩展到所有组合:

条件熵则是“已经知道其中一个变量后,另一个还剩多少不确定”:

由这两个量可以推出链式法则:H(X,Y) = H(X) + H(Y|X),意思是“联合不确定性 = 先猜 X 的不确定性 + 已知 X 后猜 Y 的不确定性”。小美每次都先问最有把握的问题,正是这个公式在生活中的体现:先消除大头,剩下的部分就越少。

H(X,Y)=−∑x∈X∑y∈Yp(x,y)log⁡2p(x,y)\displaystyle H(X,Y) = -\sum_{x\in\mathcal{X}}\sum_{y\in\mathcal{Y}} p(x,y) \log_2 p(x,y)
它先把 Y 固定成某个值 y,看 X 还乱不乱,再按 y 的出现概率加权平均。条件熵越小,说明 Y 对 X 的提示越给力。
  1. 对 Y 的每个取值分组把样本按 Y = y 分组,每组内计算 X 的熵。
    H(X∣Y=y)\displaystyle H(X|Y=y)
  2. 按 Y 的分布加权出现概率高的 y 组分到的权重 p(y) 更大,最终结果是所有组的加权平均。
    ∑y∈Yp(y) H(X∣Y=y)\displaystyle \sum_{y\in\mathcal{Y}} p(y)\, H(X|Y=y)

维恩图关系:信息重叠地带

把 H(X) 和 H(Y) 画成两个圆,圆的面积就是各自的不确定程度。如果两个圆几乎不重叠,说明小杰的提示和小美的答案各说各话;如果圆大面积交叠,说明提示和答案高度相关。那个交叠区域,就是互信息 I(X;Y)。这个几何直觉可以浓缩成一个漂亮的面积公式:

从这个公式立刻能看出两个极端情形。如果 X 与 Y 独立,联合熵等于各自熵之和,重叠面积为 0——小美的提示对她的猜测毫无帮助。如果 X 与 Y 完全确定彼此,例如 X 的答案能由 Y 的提示百分之百推出,那么互信息就等于 H(X),一个圆完全包含在另一个圆里。大多数机器学习场景都处于两者之间:特征与标签有部分重叠,重叠越大,特征越值得用。

I(X;Y)=H(X)+H(Y)−H(X,Y)\displaystyle I(X;Y) = H(X) + H(Y) - H(X,Y)
两个圆面积相加,再减去整个外轮廓(联合熵)的面积,剩下的正是重叠区——也就是两个变量共享的信息量。
  1. 单独面积相加先算 H(X) 和 H(Y) 的总和,这时重叠区域被计数了两次。
    H(X)+H(Y)\displaystyle H(X) + H(Y)
  2. 减去联合面积联合熵 H(X,Y) 是外轮廓的真实总面积,把它减掉,就消除了重复计数。
    H(X)+H(Y)−H(X,Y)\displaystyle H(X) + H(Y) - H(X,Y)
  3. 得到重叠面积结果就是两个变量真正共享的信息量。
    I(X;Y)\displaystyle I(X;Y)

基本性质:默契的两条铁律

小美和小杰玩得多了,总结出两条“默契守恒定律”。第一条:好的提示永远不会让你更糊涂。就算小杰给了一个完全无关的提示,小美最多是“白听”,信息量是零,绝不可能变成负数。这就是互信息的非负性:I(X;Y) ≥ 0。第二条:默契是相互的。小美能从小杰的提示里猜中多少心思,和小杰能从小美的反应里猜出她想到了什么,信息量完全一样。这就是对称性。

另一个容易记住的特例是自信息:如果拿 X 和它自己算互信息,等于它自己的熵:

I(X;Y)=I(Y;X)≥0\displaystyle I(X;Y) = I(Y;X) \geq 0
一个变量和自身的信息共享当然是它的全部信息,即它自己的熵。这就像小美完全知道小杰心里想什么,默契值拉满。
  1. 代入公式当 Y = X 时,条件熵 H(X|X) = 0,差式直接退化成 H(X)。
    H(X)−H(X∣X)=H(X)\displaystyle H(X) - H(X|X) = H(X)
  2. 直观含义提示与答案完全重合,所以信息增益等于答案本身的总信息量。
    I(X;X)=H(X)\displaystyle I(X;X) = H(X)

决策树ID3:猜词冠军的提问策略

小美玩多了发现一个规律:不是每个问题都值得先问。“它会飞吗?”和“它有毛吗?”往往比“它名字里有三个字吗?”更有效率。决策树的 ID3 算法把这条经验变成了硬规则:每一层分裂时,选择信息增益最大的特征。信息增益衡量的是“用这个特征划分后,数据混乱度下降了多少”:

更妙的是,这个 Gain(D,A) 本质上就是特征 A 与标签 D 的经验互信息 I(A;D)——只是名字换成了“信息增益”。ID3 算法做的事情,就是不断问:“在所有还没用过的特征里,哪一个与标签的互信息最大?”然后选它作为分裂节点,递归进行下去。小美如果按这个策略玩游戏,她几乎总能用最少的提问次数猜中答案。

Gain(D,A)=H(D)−∑v∈Values(A)∣Dv∣∣D∣H(Dv)\displaystyle \text{Gain}(D, A) = H(D) - \sum_{v\in\text{Values}(A)} \frac{|D_v|}{|D|} H(D_v)
前半部分是划分前的熵,后半部分是按特征 A 的取值切分后的期望熵。两者之差就是这次提问带来的“清晰度收益”。
  1. 划分前的不确定度H(D) 是当前数据集 D 的标签熵,代表“还没问这个问题时有多懵”。
    H(D)\displaystyle H(D)
  2. 按特征取值切分A 的每个取值 v 把 D 分成子集 D_v,每个子集都有自己的熵。
    H(Dv)\displaystyle H(D_v)
  3. 按规模加权求和子集样本数占比 |D_v|/|D| 作为权重,算出划分后的期望熵。
    ∑v∈Values(A)∣Dv∣∣D∣H(Dv)\displaystyle \sum_{v\in\text{Values}(A)} \frac{|D_v|}{|D|} H(D_v)
  4. 相减得增益划分前后的熵差,就是该特征的“信息增益”。
    Gain(D,A)=H(D)−∑v∣Dv∣∣D∣H(Dv)\displaystyle \text{Gain}(D, A) = H(D) - \sum_{v} \frac{|D_v|}{|D|} H(D_v)

特征选择实战:问题库的瘦身术

真实的机器学习项目里,特征往往有成百上千个:用户的年龄、消费金额、点击次数、注册时长……就像小美面前放着一本几百页的“候选问题手册”,但游戏只允许她问 3 个问题。怎么选?答案很简单:选与答案互信息最大的 3 个。这就是特征选择的核心理念——用互信息给每个特征与标签之间的“默契程度”打分:

互信息打分与相关系数最大的不同是:它不假设任何线性关系。哪怕特征与标签的关系是“U 形”“波浪形”甚至“分段阶跃”,互信息都能捕捉到。这也是为什么在特征工程里,它常常被当作“第一轮海选”的标准:先按互信息筛掉一批明显无关的特征,再用更精细的方法做第二轮加工。小美面对那本几百页的问题手册,也是这样先划掉所有与动物无关的问题,再从中挑最优。

I(F;Y)=∑f∈F∑y∈Yp(f,y)log⁡2p(f,y)p(f)p(y)\displaystyle I(F;Y) = \sum_{f\in\mathcal{F}}\sum_{y\in\mathcal{Y}} p(f,y) \log_2 \frac{p(f,y)}{p(f)p(y)}
这里的 F 是某个特征,Y 是标签。式子与互信息定义式完全相同,只是换了个语境:你要从一堆特征里,挑出那个“最会剧透”的。
  1. 特征取值与标签配对遍历特征 F 的每个取值 f 和标签 Y 的每个取值 y,统计它们的联合频率。
    ∑f∈F∑y∈Yp(f,y)\displaystyle \sum_{f\in\mathcal{F}}\sum_{y\in\mathcal{Y}} p(f,y)
  2. 偏离独立程度联合频率除以两个边缘频率的乘积,衡量“这个特征取值搭配这个标签”是否比随机猜测更常见。
    log⁡2p(f,y)p(f)p(y)\displaystyle \log_2 \frac{p(f,y)}{p(f)p(y)}
  3. 累加得到得分所有组合加权累加,就得到特征 F 对标签 Y 的互信息得分,得分越高,特征越值得保留。
    I(F;Y)=∑f∈F∑y∈Yp(f,y)log⁡2p(f,y)p(f)p(y)\displaystyle I(F;Y) = \sum_{f\in\mathcal{F}}\sum_{y\in\mathcal{Y}} p(f,y) \log_2 \frac{p(f,y)}{p(f)p(y)}

信息瓶颈:暗号要短,更要准

小美和小杰玩的是“限时版”:她只能写一个很短的暗号传给小杰,暗号不能太长。这就引出了机器学习里一个经典思想——信息瓶颈。设 X 是原始信息,Y 是目标答案,T 是我们要设计的“暗号”(压缩后的特征表示)。我们希望暗号 T 尽量简短,但又不能短到失去对答案的提示力。这个平衡可以写成:

信息瓶颈方法在深度学习中非常实用:模型的中间层向量就是那个“暗号”,信息瓶颈正则化迫使中间层丢弃与任务无关的噪声,只保留与标签最相关的信息,从而提升泛化能力。小美的暗号也一样——它不需要写完整描述动物的小作文,只需要“毛茸茸、四条腿、会汪汪叫”这几个字,就已经把答案锁死了。

min⁡p(t∣x)[I(X;T)−β I(T;Y)]\displaystyle \min_{p(t|x)} \left[ I(X;T) - \beta\, I(T;Y) \right]
I(X;T) 越小代表压缩越狠,I(T;Y) 越大代表对答案帮助越大,β 是权衡两者的旋钮。
  1. 暗号与原始信息的关系I(X;T) 是暗号 T 还保留了多少 X 的信息,这项越小说明压缩得越狠。
    I(X;T)\displaystyle I(X;T)
  2. 暗号对答案的帮助I(T;Y) 是看到暗号后对猜 Y 的帮助,这项越大代表暗号越“说到点子上”。
    I(T;Y)\displaystyle I(T;Y)
  3. 两者相减并优化在给定 β 时寻找让目标最小的条件分布 p(t|x),得到最优暗号设计。
    min⁡p(t∣x)[I(X;T)−β I(T;Y)]\displaystyle \min_{p(t|x)} \left[ I(X;T) - \beta\, I(T;Y) \right]

AI 应用场景

场景一:银行风控模型的特征筛选

阶段:特征工程与模型选择

解决的问题:银行有数百个用户特征,很多是冗余或噪声。传统做法用皮尔逊相关系数筛特征,但它只能捕捉线性关系,容易漏掉非线性信号。用互信息对每个特征与违约标签打分,可以同时捕捉线性和非线性依赖,筛出真正“会剧透”的特征子集,同时降低过拟合风险。

具体案例:某消费金融公司在二分类建模时,原始特征 300 个,先用互信息排序并结合递归剔除,保留 30 个特征,AUC 提升约 4 个百分点,训练时间缩短一半。特征排序只用了几分钟,却成了整个项目性价比最高的一步。

场景二:推荐系统的信息瓶颈压缩

阶段:召回与排序

解决的问题:用户行为序列很长,全部塞进模型既慢又容易过拟合。信息瓶颈方法引导模型把行为序列压缩成紧凑向量,同时尽量保留与点击目标相关的信息,相当于给小美设计一个“短而准”的暗号。

具体案例:某短视频推荐团队把用户近 200 条观看记录压缩为 64 维向量,用信息瓶颈正则训练双塔模型,离线 AUC 提升 1.2%,在线人均时长提升 3%。压缩后的向量还显著降低了线上推理延迟。

场景三:文本分类的关键词抽取

阶段:数据预处理

解决的问题:词袋向量动辄上万维,绝大多数词与类别无关。用互信息给每个词与类别标签打分,选出判别力最强的 Top-K 词,既能降维又能提升分类效果。

具体案例:某邮件系统的垃圾邮件过滤,对 5000 个候选词按互信息排序,只保留前 1000 个词作为特征,分类准确率提高 1.8%,训练时间缩短 60%。互信息的计算只依赖词与类别的共现统计,实现简单、可解释性强。

Python 演示

python45 行
import mathfrom collections import Counter def entropy(labels):    total = len(labels)    if total == 0:        return 0.0    probs = [c / total for c in Counter(labels).values()]    return -sum(p * math.log2(p) for p in probs if p > 0) def conditional_entropy(feature, labels):    total = len(labels)    pairs = list(zip(feature, labels))    result = 0.0    for val in set(feature):        sub = [l for v, l in pairs if v == val]        weight = len(sub) / total        result += weight * entropy(sub)    return result def mutual_info(feature, labels):    return entropy(labels) - conditional_entropy(feature, labels) def info_gain(dataset, feature_idx, label_idx):    feature = [row[feature_idx] for row in dataset]    labels = [row[label_idx] for row in dataset]    return mutual_info(feature, labels) if __name__ == "__main__":    # 猜动物数据集: 有毛? 会飞? 水生? 标签=动物名    dataset = [        ["毛", "不会飞", "陆生", "猫"],        ["毛", "不会飞", "陆生", "狗"],        ["无毛", "会飞", "陆生", "鸟"],        ["无毛", "会飞", "陆生", "鸟"],        ["无毛", "不会飞", "水生", "鱼"],        ["无毛", "不会飞", "水生", "虾"],        ["毛", "不会飞", "陆生", "猫"],        ["无毛", "会飞", "陆生", "鸟"],    ]    feature_names = ["有毛?", "会飞?", "水生?"]    label_idx = len(dataset[0]) - 1    for idx, name in enumerate(feature_names):        gain = info_gain(dataset, idx, label_idx)        print("特征 %s 的信息增益 = %.3f" % (name, gain))
目的:用互信息(信息增益)对“猜动物”小数据集的三个特征打分,找出哪个问题最值得先问。
  1. def entropy(labels):定义熵函数:输入标签列表,输出信息熵,衡量“有多乱”。
  2. probs = [c / total for c in Counter(labels).values()]统计每个类别的占比,作为概率估计。
  3. return -sum(p * math.log2(p) for p in probs if p > 0)按熵公式加权求和,得到混乱度。
  4. def conditional_entropy(feature, labels):条件熵:按特征取值分组后再算各组的熵。
  5. sub = [l for v, l in pairs if v == val]把特征值为 val 的所有样本标签取出来。
  6. weight = len(sub) / total该组样本在整体中的占比,作为加权权重。
  7. result += weight * entropy(sub)每个组的熵乘以权重再累加,得到条件熵。
  8. def mutual_info(feature, labels):互信息 = 标签熵 − 条件熵,一行完成核心计算。
  9. if __name__ == "__main__":可执行入口,保证脚本能直接运行并输出各特征增益。

常见误区

误区“我算过皮尔逊相关系数,只有 0.2,这个特征肯定没用,互信息估计也高不到哪去。”

正解皮尔逊相关系数只衡量线性关系,两个变量之间完全可能存在强烈的“U 形”或“分段”依赖——比如年龄和消费金额先降后升,线性相关系数接近 0,但互信息可以很高。互信息度量的是任意统计依赖,是所有“剧透能力”的总和。

为何常见:因为大多数人最早接触的相关性概念就是皮尔逊系数,容易把“线性相关”当作“相关的全部”。

误区“ID3 说选信息增益最大的特征,那我一直选增益最大的,模型一定最好。”

正解信息增益有一个已知毛病:它偏向取值很多的离散特征。比如“用户 ID”这种特征每个样本一个取值,划分后每个子集只剩一个样本,熵为 0,增益非常大,但对新数据毫无预测力。工程上常用增益率(GainRatio)做修正,并且要结合验证集评估。增益大小反映的是训练集上的“剧透能力”,不代表泛化能力。

为何常见:教材里 ID3 的简单描述让人以为“增益最大”是绝对真理,忽略了它对多值特征的偏好。

误区“这个特征和标签互信息很高,那它一定是这个标签的原因,可以直接用来做因果推断。”

正解互信息只衡量统计关联,不区分方向。X 导致 Y、Y 导致 X、或者存在共同的隐藏变量 Z 同时影响 X 和 Y,三种情况都可能算出很高的互信息。比如“穿衣厚度”与“感冒”互信息很高,但真正的共同原因是“气温”。互信息适合做预测的相关性筛选,不能替代因果推断。

为何常见:“共享信息”这个词容易被直觉理解成“一方提供信息给另一方”,从而滑向因果关系。

误区“信息增益是决策树里的,互信息是信息论里的,它们只是名字有点像,其实是两个不同概念。”

正解在决策树的经验分布语境下,信息增益 Gain(D,A) 就是特征 A 与标签 D 之间的经验互信息 I(A;D)。同一个数学对象,信息论里叫互信息,决策树教材里叫信息增益,只是出发点和符号不同。

为何常见:两套术语来自不同教材体系,一个从分布的角度定义,一个从数据划分的角度定义,初学者很难看出它们背后的同一个公式。

误区“既然互信息是'共享信息',那如果两个变量没关系,共享信息不是应该欠一点、是负的吗?”

正解互信息恒为非负,独立时恰好等于 0。因为对数项中的比值在独立时为 1,log 1 = 0,所有项加起来还是 0。不会出现负数,因为互信息本质上是一个 KL 散度,而 KL 散度永远非负。这就像小杰给了一个完全无关的提示,小美最多是“白听”,绝不会越听越糊涂。

为何常见:把“共享信息”类比成“账本的借贷关系”,直觉上以为信息可以“倒欠”,实际信息论里没有负数信息这回事。

面试题

Q1. 当随机变量 X 与 Y 完全独立时,互信息 I(X;Y) 的值为?

单选题 · easy

  • A.0 比特← 正确答案
  • B.1 比特
  • C.无穷大
  • D.无法确定

答案:A。独立时联合概率等于两个边缘概率的乘积,对数项 log₂(p(x,y)/(p(x)p(y))) = log₂1 = 0,所有项加权和仍为 0。就像小杰的提示和答案毫无关系,听完等于没听,把握一点没涨。

Q2. 互信息关于两个随机变量的位置关系满足哪种性质?

单选题 · easy

  • A.对称性← 正确答案
  • B.传递性
  • C.线性可加
  • D.三角不等式

答案:A。互信息 I(X;Y) 在定义式中交换 X 和 Y 的位置,公式形式上完全不变,所以满足对称性。这对应“你懂我多少,我就懂你多少”的默契守恒。

Q3. 已知 H(X)=2 比特,H(Y)=3 比特,H(X,Y)=4 比特,则 I(X;Y) 为?

单选题 · mid

  • A.1 比特← 正确答案
  • B.2 比特
  • C.3 比特
  • D.5 比特

答案:A。由维恩图关系 I(X;Y) = H(X) + H(Y) − H(X,Y) = 2 + 3 − 4 = 1 比特。两个“信息圆”的面积加起来,减去联合外轮廓的面积,剩下的重叠区域就是互信息。

Q4. ID3 决策树算法在每层选择特征的准则是什么?

单选题 · easy

  • A.信息增益最大← 正确答案
  • B.信息增益最小
  • C.训练误差最小
  • D.特征取值最少

答案:A。ID3 的核心策略是每层选择信息增益最大的特征作为分裂点,等价于每次问“最能把猜测范围砍半”的问题。信息增益最小反而是最差的选择。

Q5. 条件熵 H(X|Y) 最直观的概率论含义是什么?

单选题 · mid

  • A.已知Y后X剩余的熵值← 正确答案
  • B.X和Y联合信息熵值
  • C.条件概率的期望值
  • D.边缘分布的熵值

答案:A。条件熵是在已知 Y 的前提下 X 剩余不确定性的加权平均。它是互信息差式 H(X) − H(X|Y) 中的“减数”:已知 Y 后剩得越少,说明 Y 的提示越给力。

Q6. 在决策树特征选择语境下,信息增益与互信息的关系是?

单选题 · hard

  • A.两者在数值上等价← 正确答案
  • B.两者在数值上无关
  • C.增益为互信息平方
  • D.互信息为增益负数

答案:A。决策树中的增益 Gain(D,A) 基于经验分布计算,就是特征 A 与标签 D 的经验互信息 I(A;D)。名称不同,数学对象是同一个,如“尺子与脚步量的是同一段路”。

Q7. 互信息最大特征学习的核心目标是?

单选题 · hard

  • A.让特征与标签共享信息最多← 正确答案
  • B.让特征的样本方差最大
  • C.让各特征间完全独立
  • D.让特征的信息熵最小

答案:A。互信息最大特征学习是在特征表示学习中,让学到的特征与标签之间的互信息尽量大,即“共享信息最多”,这样才能保证特征对下游任务有足够预测力。方差大并不等于对标签有用。

Q8. 下列关于互信息性质的说法,正确的有哪些?

多选题 · mid

  • A.互信息的取值恒为非负← 正确答案
  • B.互信息满足对称性质← 正确答案
  • C.互信息可超过联合熵
  • D.X等于Y时互信息为熵← 正确答案

答案:ABD。A 正确,互信息是 KL 散度,恒非负;B 正确,I(X;Y)=I(Y;X);C 错误,由维恩图面积关系可知 I ≤ H(X,Y);D 正确,I(X;X)=H(X)−H(X|X)=H(X)。

Q9. 关于信息增益,以下说法正确的有哪些?

多选题 · hard

  • A.常用于决策树特征选择← 正确答案
  • B.理论上可能取负值
  • C.偏向取值多的特征← 正确答案
  • D.等于经验互信息← 正确答案

答案:ACD。A 正确,ID3 等算法标准做法;B 错误,信息增益等于互信息,非负;C 正确,ID3 确实偏好多取值特征,这是它的已知缺点;D 正确,增益和经验互信息是同一个量。

Q10. 关于互信息的定义与性质,正确的是?

多选题 · hard

  • A.可用联合与边缘分布比描述← 正确答案
  • B.等价于信息熵的差值← 正确答案
  • C.只能用于连续随机变量
  • D.变量独立时取值为零← 正确答案

答案:ABD。A 正确,定义式就是用联合分布与边缘分布的比值取对数;B 正确,I(X;Y)=H(X)−H(X|Y);C 错误,离散变量同样适用,决策树里算的就是离散经验互信息;D 正确,独立时对数项为 0,总值为 0。