2. 信息论基础:熵、联合熵、条件熵、互信息的概念与计算公式,以及它们在MRM中的应用
信息论为特征筛选提供了量化“信息量”与“相关性”的数学工具。在多反应监测(MRM)特征筛选中,我们常需要判断某个特征(如母离子-子离子对)是否携带了足够的“信息”来区分不同样本组(如疾病组 vs 对照组)。本节将系统梳理熵、联合熵、条件熵与互信息四大核心概念,并展示它们在MRM特征筛选中的具体应用。
2.1 熵(Entropy)—— 不确定性的度量
熵衡量一个随机变量的不确定性。在MRM中,若某个特征在所有样本中取值完全相同(如峰面积恒定),则其熵为0,说明该特征不携带任何区分信息;反之,若特征取值随机分布,熵值较高。
计算公式(离散随机变量 X):
H(X) = - Σ p(x) · log₂ p(x)
其中 p(x) 为 X 取值为 x 的概率,对数底数通常取2,单位是比特(bit)。
| 场景 | 概率分布 | 熵值(bit) | MRM含义 |
|---|---|---|---|
| 确定性事件 | p=1, 其余为0 | 0 | 特征无区分度,所有样本值相同 |
| 均匀分布(2类) | p=0.5, 0.5 | 1 | 特征完全随机,不确定性最大 |
| 偏斜分布 | p=0.9, 0.1 | ≈0.47 | 特征有一定偏向性,但仍存在不确定性 |
2.2 联合熵(Joint Entropy)—— 两个变量的联合不确定性
联合熵衡量两个随机变量 X 和 Y 同时发生时的总不确定性。在MRM中,可用于评估两个特征(如两个不同的离子对)共同携带的信息量。
计算公式:
H(X, Y) = - Σ Σ p(x, y) · log₂ p(x, y)
其中 p(x, y) 为 X 和 Y 的联合概率分布。
关键性质:
- H(X, Y) ≥ max(H(X), H(Y)) —— 联合不确定性不小于单个变量的不确定性
- H(X, Y) ≤ H(X) + H(Y) —— 当 X 与 Y 独立时取等号
2.3 条件熵(Conditional Entropy)—— 已知一个变量后剩余的不确定性
条件熵 H(Y|X) 表示在已知 X 的条件下,Y 仍然存在的不确定性。在MRM特征筛选中,若已知样本分组标签(如疾病/健康),条件熵可衡量特征在该分组下剩余的“噪声”程度。
计算公式:
H(Y|X) = - Σ Σ p(x, y) · log₂ p(y|x)
与联合熵的关系:
H(X, Y) = H(X) + H(Y|X) = H(Y) + H(X|Y)
这一链式法则表明:联合不确定性 = 已知一个变量的不确定性 + 另一个变量在已知条件下的剩余不确定性。
2.4 互信息(Mutual Information, MI)—— 变量间的共享信息
互信息衡量两个变量之间共享的信息量,即知道一个变量能减少另一个变量的不确定性程度。这是MRM特征筛选中最核心的指标之一,用于评估特征与分类标签之间的相关性。
计算公式:
I(X; Y) = Σ Σ p(x, y) · log₂ [ p(x, y) / (p(x) · p(y)) ]
等价形式:
I(X; Y) = H(X) - H(X|Y) = H(Y) - H(Y|X) = H(X) + H(Y) - H(X, Y)
| 关系 | 互信息值 | MRM解释 |
|---|---|---|
| X 与 Y 独立 | 0 | 特征与标签无关,应剔除 |
| X 完全决定 Y | H(Y) | 特征完美区分样本组,理想特征 |
| X 部分预测 Y | 0 < I < H(Y) | 特征有一定区分能力,需结合其他特征 |
2.5 四种信息度量之间的关系
下图直观展示了熵、联合熵、条件熵与互信息之间的逻辑关系:
2.6 在MRM特征筛选中的具体应用
在MRM特征筛选流程中,信息论指标主要用于以下三个关键环节:
- 特征初筛(基于熵): 计算每个MRM特征(如峰面积、保留时间)的熵值,剔除熵值低于阈值(如0.1 bit)的特征,这些特征在不同样本间几乎无变化。
- 特征-标签相关性评估(基于互信息): 计算每个特征与样本分组标签之间的互信息,按MI值从高到低排序,保留MI值较高的特征。
- 特征冗余分析(基于条件互信息): 在已选特征条件下,计算候选特征与标签的条件互信息,剔除冗余特征,避免特征之间的信息重复。
| 应用环节 | 使用的指标 | 筛选规则 | MRM示例 |
|---|---|---|---|
| 无效特征剔除 | 熵 H(X) | H(X) < 0.1 → 剔除 | 某离子对在所有样本中峰面积几乎恒定 |
| 相关特征选择 | 互信息 I(X;Y) | I(X;Y) 排名前K → 保留 | 某离子对在疾病组与健康组间差异显著 |
| 冗余特征去除 | 条件互信息 I(X;Y|Z) | I(X;Y|Z) ≈ 0 → 剔除X | 两个离子对携带相似的生物学信息 |
2.7 信息论指标的计算示例(Python伪代码)
import numpy as np
from collections import Counter
def entropy(x, base=2):
"""计算离散变量的熵"""
counts = Counter(x)
probs = [c / len(x) for c in counts.values()]
return -sum(p * np.log(p) / np.log(base) for p in probs)
def mutual_information(x, y, base=2):
"""计算两个离散变量之间的互信息"""
# 联合概率
joint = Counter(zip(x, y))
n = len(x)
# 边缘概率
px = Counter(x)
py = Counter(y)
mi = 0.0
for (xi, yi), count in joint.items():
pxy = count / n
px_val = px[xi] / n
py_val = py[yi] / n
mi += pxy * np.log(pxy / (px_val * py_val)) / np.log(base)
return mi
# 示例:MRM特征与标签
feature = [12.3, 45.6, 12.1, 44.9, 13.0, 46.2] # 峰面积
label = [0, 1, 0, 1, 0, 1] # 0=健康, 1=疾病
# 离散化(等频分箱为3箱)
bins = np.percentile(feature, [33.3, 66.6])
feature_disc = np.digitize(feature, bins)
print("特征熵:", entropy(feature_disc))
print("互信息:", mutual_information(feature_disc, label))
mutual_info_classif)计算互信息,该函数内置了连续变量的k近邻估计方法,无需手动离散化,且能处理高维特征。
2.8 信息论在MRM特征筛选中的优势与局限
| 维度 | 优势 | 局限 |
|---|---|---|
| 关系类型 | 可捕捉非线性、非单调关系 | 无法区分正相关与负相关 |
| 数据要求 | 对数据分布无假设,适用性强 | 连续值需离散化或使用估计方法 |
| 计算效率 | 低维时计算快速 | 高维时联合概率估计稀疏,需大量样本 |
| 可解释性 | 信息量有明确物理意义(比特) | 无法直接给出特征对分类的贡献方向 |
信息论指标为MRM特征筛选提供了坚实的理论基础,尤其适合处理质谱数据中常见的非线性关系和复杂交互效应。在实际应用中,通常将互信息与统计检验(如t检验、ANOVA)结合使用,形成互补的特征筛选策略。