4. MRM算法原理:最大相关性、最小冗余性与目标函数数学推导

MRM(Max-Relevance and Min-Redundancy)是一种基于互信息的特征筛选框架,其核心思想是:所选特征子集既要与目标变量高度相关(最大相关性),又要彼此之间尽可能独立(最小冗余性)。本章从信息论基础出发,逐步推导MRM的数学原理与常见变体。

4.1 信息论基础:互信息

互信息(Mutual Information, MI)衡量两个随机变量之间的依赖程度。对于离散变量 \(X\) 和 \(Y\),其互信息定义为:

\[ I(X;Y) = \sum_{x \in X} \sum_{y \in Y} p(x,y) \log \frac{p(x,y)}{p(x)p(y)} \]

互信息具有以下关键性质:

  • 非负性:\(I(X;Y) \ge 0\),当且仅当 \(X\) 与 \(Y\) 独立时取0。
  • 对称性:\(I(X;Y) = I(Y;X)\)。
  • 与熵的关系:\(I(X;Y) = H(X) - H(X|Y) = H(Y) - H(Y|X)\)。
实践提示:在连续特征场景下,通常使用核密度估计(KDE)或k近邻方法(如KSG估计器)计算互信息。scikit-learn的 mutual_info_classif 默认采用k近邻法。

4.2 最大相关性准则(Max-Relevance)

最大相关性准则要求所选特征子集 \(S\) 中的每个特征 \(f_i\) 与目标变量 \(c\) 的互信息之和最大化。其数学表达式为:

\[ \max D(S, c), \quad D = \frac{1}{|S|} \sum_{f_i \in S} I(f_i; c) \]

其中 \(|S|\) 为子集大小。该准则单独使用时,容易选出高度相似的特征(例如两个强相关但彼此冗余的特征),导致模型过拟合或泛化能力下降。

4.3 最小冗余性准则(Min-Redundancy)

最小冗余性准则要求特征子集 \(S\) 内部特征之间的互信息之和最小化,即特征之间尽可能独立:

\[ \min R(S), \quad R = \frac{1}{|S|^2} \sum_{f_i, f_j \in S} I(f_i; f_j) \]

该准则单独使用会倾向于选择彼此独立的特征,但可能忽略与目标变量的相关性,导致筛选出的特征对预测任务贡献不足。

4.4 MRM目标函数与变体

MRM将最大相关性与最小冗余性组合为统一的目标函数。根据组合方式的不同,衍生出以下三种经典变体:

变体名称 目标函数 组合方式 适用场景
MID (Mutual Information Difference) \(\max \left[ D - R \right]\) 差值组合 特征数量较少、冗余度较高时效果较好
MIQ (Mutual Information Quotient) \(\max \left[ D / R \right]\) 比值组合 特征数量较多、相关性差异较大时更稳定
MIM (Mutual Information Maximization) \(\max \left[ D \right]\) 仅最大化相关性 仅考虑相关性,忽略冗余(退化为最大相关性准则)
数学推导要点:MID和MIQ的优化目标均为NP难问题,实际求解时采用增量搜索策略:每次从候选特征中选择使目标函数最优的特征加入子集,直到达到预设特征数。

4.5 增量搜索算法流程

MRM的增量前向选择算法步骤如下:

  1. 初始化:空特征子集 \(S = \emptyset\),候选特征集 \(F\)。
  2. 第一步:从 \(F\) 中选择与目标变量 \(c\) 互信息最大的特征 \(f^*\),加入 \(S\)。
  3. 迭代:对于 \(k = 2\) 到 \(K\)(预设特征数),执行:
    • 对每个候选特征 \(f_i \in F \setminus S\),计算目标函数值(MID或MIQ)。
    • 选择使目标函数最大的特征 \(f^*\),加入 \(S\)。
  4. 终止:当 \(|S| = K\) 或候选特征集为空时停止。
注意:增量搜索得到的解是近似最优而非全局最优。对于高维数据(如基因表达数据),增量搜索的计算复杂度为 \(O(K \cdot |F| \cdot N)\),其中 \(N\) 为样本数,通常可接受。

4.6 MRM目标函数数学推导(以MID为例)

给定已选子集 \(S_{k-1}\),候选特征 \(f_i\),MID目标函数为:

\[ J_{\text{MID}}(f_i) = I(f_i; c) - \frac{1}{|S_{k-1}|} \sum_{f_j \in S_{k-1}} I(f_i; f_j) \]

推导过程:

  • 当前子集 \(S = S_{k-1} \cup \{f_i\}\),则:
    • 相关性项:\(D = \frac{1}{k} \left[ \sum_{f_j \in S_{k-1}} I(f_j; c) + I(f_i; c) \right]\)
    • 冗余性项:\(R = \frac{1}{k^2} \left[ \sum_{f_j, f_l \in S_{k-1}} I(f_j; f_l) + 2 \sum_{f_j \in S_{k-1}} I(f_i; f_j) \right]\)
  • 由于 \(S_{k-1}\) 已固定,最大化 \(D - R\) 等价于最大化: \[ \frac{1}{k} I(f_i; c) - \frac{2}{k^2} \sum_{f_j \in S_{k-1}} I(f_i; f_j) \]
  • 忽略常数因子 \(\frac{1}{k}\) 和 \(\frac{2}{k^2}\),得到简化后的增量目标函数: \[ J_{\text{MID}}(f_i) = I(f_i; c) - \frac{1}{|S_{k-1}|} \sum_{f_j \in S_{k-1}} I(f_i; f_j) \]

MIQ的推导类似,增量目标函数为:

\[ J_{\text{MIQ}}(f_i) = \frac{I(f_i; c)}{\frac{1}{|S_{k-1}|} \sum_{f_j \in S_{k-1}} I(f_i; f_j)} \]

4.7 MRM算法核心结构图

MRM特征筛选算法核心结构 输入:特征矩阵 X + 目标变量 y 步骤1:计算所有特征与目标变量的互信息 I(f; c) (使用KSG估计器或离散化方法) 步骤2:选择 I(f; c) 最大的特征作为第一个特征 步骤3:迭代选择剩余特征 对每个候选特征计算 MID 或 MIQ 目标函数值 选择使目标函数最大的特征加入子集 输出:最优特征子集 S

4.8 MID与MIQ对比分析

对比维度 MID(差值) MIQ(比值)
数学形式 \(I(f_i;c) - \frac{1}{|S|}\sum I(f_i;f_j)\) \(\frac{I(f_i;c)}{\frac{1}{|S|}\sum I(f_i;f_j)}\)
对冗余的惩罚 线性惩罚,冗余越大扣分越多 非线性惩罚,冗余大时比值急剧下降
数值稳定性 可能出现负值,需处理 始终非负,但分母接近0时不稳定
特征数敏感度 随特征数增加,差值可能趋于饱和 比值对特征数变化更鲁棒
推荐场景 特征数少(<50)、冗余明显 特征数多(>100)、相关性差异大

4.9 MIM与MRM的关系

MIM(Mutual Information Maximization)是MRM的特例,仅保留最大相关性准则:

\[ J_{\text{MIM}}(f_i) = I(f_i; c) \]

MIM的优缺点:

  • 优点:计算简单,仅需一次互信息排序。
  • 缺点:完全忽略特征间冗余,容易选出高度相关的特征组合,导致信息重复。
经验法则:在生物信息学场景中(如基因表达数据),特征间往往存在高度共线性,此时强烈推荐使用MIQ。MIQ在冗余惩罚与相关性保留之间取得了更好的平衡,尤其适用于高维小样本数据。

4.10 MRM变体选择决策图

MRM变体选择决策流程 开始特征筛选 特征数 < 50 且冗余明显? 是 使用 MID 否 使用 MIQ 输出特征子集

4.11 本章小结

  • MRM核心:在最大相关性(与目标变量)与最小冗余性(特征之间)之间寻找平衡。
  • 三种变体:MID(差值)、MIQ(比值)、MIM(仅相关性),各有适用场景。
  • 求解策略:增量前向选择,每次选择使目标函数最优的特征。
  • 实践建议:高维数据优先选MIQ,低维冗余数据优先选MID,简单场景可用MIM作为基线。