互信息(MI)是信息论中的一个概念,衡量一个随机变量包含关于另一个随机变量的信息量。换句话说,它量化了两个变量之间的统计依赖关系。如果两个变量是独立的,它们的互信息为零;如果不是,则互信息将大于零。
在机器学习(ML)的背景下,互信息对于特征选择特别有用,特征选择是为给定模型识别信息量最大的特征的过程。通过评估特征与目标变量之间的互信息,可以根据特征的重要性对其进行排序。与目标变量互信息较高的特征被认为更重要,因为它们共享了更多关于目标的信息,可能对预测目标更有用。
互信息的另一个好处是,它可以捕捉变量之间的任何类型的关系,而不仅仅是线性关联(相关性就是这样)。这使得它成为在复杂数据集上进行特征选择的强大工具,在这些数据集上变量之间的关系可能并不直接。
此外,互信息在ML中用于以下任务:
互信息是机器学习中的一个通用工具,既可以进行探索性数据分析,也可以提高模型性能。
利用两个离散随机变量 X X X和 Y Y Y的联合概率分布 P ( X , Y ) P(X,Y) P(X,Y)以及它们各自的边缘概率分布 P ( X ) P(X) P(X)和 P ( Y ) P(Y) P(Y)计算它们之间的互信息(MI)。MI的公式如下:
M I ( X ; Y ) = ∑ x ∈ X ∑ y ∈ Y P ( x , y ) log ? ( P ( x , y ) P ( x ) P ( y ) ) MI(X;Y) = \sum_{x \in X} \sum_{y \in Y} P(x,y) \log \left(\frac{P(x,y)}{P(x)P(y)}\right) MI(X;Y)=x∈X∑?y∈Y∑?P(x,y)log(P(x)P(y)P(x,y)?)
其中:
考虑一个简单的例子,其中有两个随机变量 X X X和 Y Y Y,它们的联合概率分布如下:
y =0 | y =1 | |
---|---|---|
x =0 | 1/2 | 0 |
x =1 | 0 | 1/2 |
在这里, X X X和 Y Y Y完全相关: X = 0 X=0 X=0当 Y = 0 Y=0 Y=0, X = 1 X=1 X=1当 Y = 1 Y=1 Y=1。
现在,让我们计算边际概率:
现在可以计算互信息了:
M
I
(
X
;
Y
)
=
∑
x
∈
{
0
,
1
}
∑
y
∈
{
0
,
1
}
P
(
x
,
y
)
log
?
(
P
(
x
,
y
)
P
(
x
)
P
(
y
)
)
MI(X;Y) = \sum_{x \in \{0,1\}} \sum_{y \in \{0,1\}} P(x,y) \log \left(\frac{P(x,y)}{P(x)P(y)}\right)
MI(X;Y)=x∈{0,1}∑?y∈{0,1}∑?P(x,y)log(P(x)P(y)P(x,y)?)
M
I
(
X
;
Y
)
=
1
2
log
?
(
1
2
1
2
1
2
)
+
0
log
?
(
0
1
2
1
2
)
+
0
log
?
(
0
1
2
1
2
)
+
1
2
log
?
(
1
2
1
2
1
2
)
MI(X;Y) = \frac{1}{2} \log \left(\frac{\frac{1}{2}}{\frac{1}{2}\frac{1}{2}}\right) + 0 \log \left(\frac{0}{\frac{1}{2}\frac{1}{2}}\right) + 0 \log \left(\frac{0}{\frac{1}{2}\frac{1}{2}}\right) + \frac{1}{2} \log \left(\frac{\frac{1}{2}}{\frac{1}{2}\frac{1}{2}}\right)
MI(X;Y)=21?log(21?21?21??)+0log(21?21?0?)+0log(21?21?0?)+21?log(21?21?21??)
M
I
(
X
;
Y
)
=
1
2
log
?
(
2
)
+
1
2
log
?
(
2
)
MI(X;Y) = \frac{1}{2} \log (2) + \frac{1}{2} \log (2)
MI(X;Y)=21?log(2)+21?log(2)
M
I
(
X
;
Y
)
=
1
2
+
1
2
MI(X;Y) = \frac{1}{2} + \frac{1}{2}
MI(X;Y)=21?+21?
M
I
(
X
;
Y
)
=
1
?bit
MI(X;Y) = 1 \text{ bit}
MI(X;Y)=1?bit
涉及 0 log ? ( 0 ) 0 \log(0) 0log(0)的词条定义为0,这与限制对齐:
lim ? p → 0 + p log ? ( p ) = 0 \lim_{p \to 0+} p \log(p) = 0 p→0+lim?plog(p)=0
在这个简单的示例中, X X X和 Y Y Y之间的互信息为1位,这是有意义的,因为知道一个变量的值可以为我们提供关于另一个变量的完整信息。
互信息(MI)上界和下界:
—下限:互信息的最
小值为0。当两个变量是完全独立的,并且知道一个变量的值不能提供关于另一个变量的信息时,就会出现这种情况。
互信息与其他特征选择方法在以下几个方面有所不同:
与皮尔逊相关:皮尔逊相关度量两个连续变量之间的线性关系,并在-1和1之间有界。它不能很好地捕捉非线性关系。另一方面,互信息可以捕获任何类型的依赖关系,无论是线性的还是非线性的,而且不仅限于连续变量——它也可以用于分类变量。
与其他相关度量:Spearman的秩相关和Kendall的tau是可以捕获单调关系的非参数度量,但像Pearson的一样,它们仍然局限于特定类型的关系,不像相互信息那样普遍。
与方差分析:方差分析(ANOVA)测试组间均值的差异,通常在处理分类输入和连续输出时使用。虽然它可以表明分类变量对连续变量的影响是否具有统计显著性,但它不能量化变量之间共享的信息量。
对卡方检验:卡方检验用于确定两个分类变量之间是否存在显著关联。它不提供变量共享多少信息的量化,而是提供变量之间是否存在关联。
与决策树中的信息增益:这实际上是一个与相互信息相关的概念。在决策树的上下文中,“信息增益”用于分割节点,并基于数据集在属性上被分割后熵的减少(或纯度的增加)。它可以被看作是类和属性之间的相互信息。
与包装方法(例如,向前选择,向后消除):这些方法直接基于它们对给定预测模型的有用性来评估变量的子集。它们是计算密集型的,因为它们需要将模型拟合到不同的特征子集。互信息通常比包装方法计算成本更低,因为它独立于模型评估特征的重要性。
与嵌入式方法(例如LASSO, Ridge回归):这些方法通过在损失函数中添加惩罚项来执行特征选择,作为模型训练过程的一部分。然而,互信息并不与特定的模型绑定,而是用作预处理步骤。
互信息是一种灵活而强大的特征选择工具,因为它不假设变量之间关系的函数形式。它可以帮助选择那些可能被其他只检测特定类型关系的方法遗漏的特征。然而,互信息可能比一些简单的相关度量需要更多的计算量,特别是对于大型数据集和许多特征。
皮尔逊相关系数(Pearson correlation coefficient)和互信息(Mutual Information, MI)都是变量之间关联的度量,但它们具有不同的性质和敏感性,这使得MI在某些情况下更普遍适用。以下是为什么在某些情况下,人工智能可以被视为比皮尔逊“更好”或更有信息量的原因:
为了说明其中的区别,假设有两个变量X和Y,使 Y = X 2 Y = X^2 Y=X2。如果要计算这些变量的Pearson相关系数,如果X同时包含对称分布的正值和负值,则该系数可能接近于零,这表明没有线性关系。然而,两者之间存在着明确的关系:Y是由x完全决定的。互信息可以正确地识别这种确定性关系。
当处理连续变量之间的线性关系时,Pearson相关性是一个有用的度量,而MI提供了一个更全面的变量之间关系度量。这使得MI成为机器学习中更通用的特征选择工具,其中变量之间的关系可能不是线性的,或者可能涉及不同类型的数据。