一直以来对信息论中相关的概念总是一知半解,查阅了相关资料,结合自己之前的笔记,总算明白了个七七八八。
正式介绍之前我们有必要了解几个概念:随机变量,事件,概率分布。
简单来说,随机变量
X
=
{
x
1
,
x
2
,
.
.
.
,
x
n
}
X = \{x_1,x_2,...,x_n\}
X={x1,x2,...,xn},在机器学习中我们通常叫它特征,其中的一个水平
x
i
x_i
xi就是一个事件,而一个随机变量会服从概率分布
P
(
X
)
P(X)
P(X)。
自信息(self-information)
首先我们来说一下自信息,它是用来度量一个随机变量中的一个事件的信息量的大小,公式如下
I
(
X
=
x
)
=
−
l
o
g
P
(
X
=
x
)
I(X=x) = -logP(X=x)
I(X=x)=−logP(X=x)简写为
I
(
x
)
=
−
l
o
g
P
(
x
)
I(x) = -logP(x)
I(x)=−logP(x)这里
l
o
g
log
log的底数为2,对应的单位为比特(
b
i
t
bit
bit)。
接下来我们来具体解释一下上述加粗的两个部分具体是什么意思。
- 随机变量中的一个事件:假设一个离散变量 X X X(一个特征)有三个可能的取值 x 1 x_1 x1, x 2 x_2 x2, x 3 x_3 x3,用我们统计的话来说就是这个随机变量有三个水平,那么其中任意一个水平 x i x_i xi就叫随机变量中的一个事件。
- 信息量的大小:一个事件 x x x的信息量大小代表这个事件的不确定程度,当发生的概率 P ( x ) P(x) P(x)越小,信息量越大。
熵(entropy)
上述自信息只能描述单个事件,我们可以用熵来描述整个概率分布的不确定性总量(或者叫做随机变量的不确定性),换言之,一个分布的熵是指 遵循这个分布的事件的期望信息总量。公式记作 H ( X ) = E x ∼ P [ − l o g ( P ( x ) ) ] H(X)=E_{x\sim P}[-log(P(x))] H(X)=Ex∼P[−log(P(x))]我们常见的公式是离散随机变量的熵: H ( X ) = − ∑ x ∈ X P ( x ) l o g P ( x ) H(X)=-\sum_{x\in X}P(x)logP(x) H(X)=−x∈X∑P(x)logP(x)
条件熵(conditional entropy)
条件熵
H
(
X
∣
Y
)
H(X|Y)
H(X∣Y)表示随机变量Y给定条件下随机变量X的不确定性。定义为
H
(
X
∣
Y
)
H(X|Y)
H(X∣Y)对Y的数学期望,表示为
H
(
X
∣
Y
)
=
∑
y
P
(
y
)
H
(
X
∣
Y
=
y
)
H(X|Y) =\sum_yP(y)H(X|Y=y)
H(X∣Y)=y∑P(y)H(X∣Y=y)等价于
H
(
X
∣
Y
)
=
−
∑
x
,
y
P
(
x
,
y
)
l
o
g
P
(
x
∣
y
)
H(X|Y)=-\sum_{x,y}P(x,y)logP(x|y)
H(X∣Y)=−x,y∑P(x,y)logP(x∣y)同样的,
H
(
X
∣
Y
,
Z
)
=
−
∑
x
,
y
,
z
P
(
x
,
y
,
z
)
l
o
g
P
(
x
∣
y
,
z
)
H(X|Y,Z)=-\sum_{x,y,z}P(x,y,z)logP(x|y,z)
H(X∣Y,Z)=−x,y,z∑P(x,y,z)logP(x∣y,z)可证明
H
(
X
)
⩾
H
(
X
∣
Y
)
⩾
H
(
X
∣
Y
,
Z
)
H(X)\geqslant H(X|Y)\geqslant H(X|Y,Z)
H(X)⩾H(X∣Y)⩾H(X∣Y,Z)其中,当获取的信息与所要研究的事物无关时,等号成立。从不等式中我们也能明白一个道理,信息的作用就在于消除不确定性(这让我不禁想到了线性回归中自变量X对因变量Y的拟合)。
互信息(mutual information)
互信息
I
(
X
,
Y
)
I(X,Y)
I(X,Y)为熵
H
(
X
)
H(X)
H(X)与条件熵
H
(
X
∣
Y
)
H(X|Y)
H(X∣Y)之差,可直观的理解为添加了额外信息
Y
Y
Y后原本关注事件
X
X
X信息量的减少程度
I
(
X
,
Y
)
=
H
(
X
)
−
H
(
X
∣
Y
)
I(X,Y)=H(X)-H(X|Y)
I(X,Y)=H(X)−H(X∣Y)等价于
I
(
X
,
Y
)
=
∑
x
,
y
P
(
x
,
y
)
l
o
g
P
(
x
,
y
)
P
(
x
)
P
(
y
)
I(X,Y) =\sum_{x,y}P(x,y)log\frac{P(x,y)}{P(x)P(y)}
I(X,Y)=x,y∑P(x,y)logP(x)P(y)P(x,y)它表示了两个随机变量之间的相互依赖程度。
值得一提的是,决策树学习中的信息增益就是训练数据集中类别与特征的互信息。
既然提到了决策树,那我们简单复习一下决策树学习中特征选择的几个准则吧。
(1)信息增益
我们先来明确一下一些符号的表示。
D
D
D:训练集;
A
A
A: 某个特征;
∣
D
∣
|D|
∣D∣: 训练集样本个数 ;
∣
C
k
∣
|C_k|
∣Ck∣: 训练集中类别为k的样本个数,
∑
k
∣
C
k
∣
=
∣
D
∣
\sum_k|C_k|=|D|
∑k∣Ck∣=∣D∣
∣
D
i
∣
|D_i|
∣Di∣: 在特征取值为
a
i
a_i
ai时的样本个数;
∣
D
i
k
∣
|D_{ik}|
∣Dik∣: 在特征取值为
a
i
a_i
ai时的样本中类别为k的样本个数
以上提到了,信息增益实际上就是训练集类别与特征的互信息。其数值 g ( D , A ) g(D,A) g(D,A)等于经验熵 H ( D ) H(D) H(D)(按类别划分)减去经验条件熵 H ( D ∣ A ) H(D|A) H(D∣A),在这里我们用频率表示概率。
当概率由数据估计得到时,熵又叫经验熵,条件熵又叫经验条件熵
g ( D , A ) = H ( D ) − H ( D ∣ A ) H ( D ) = − ∑ k ∣ C k ∣ ∣ D ∣ l o g ∣ C k ∣ ∣ D ∣ H ( D ∣ A ) = ∑ i ∣ D i ∣ ∣ D ∣ H ( D i ) = ∑ i ∣ D i ∣ ∣ D ∣ ∑ k − ∣ D i k ∣ ∣ D i ∣ l o g ∣ D i k ∣ ∣ D i ∣ \begin{aligned} g(D,A)&=H(D)-H(D|A) \\ H(D) &=-\sum_k\frac{|C_k|}{|D|} log\frac{|C_k|}{|D|} \\ H(D|A) &= \sum_i\frac{|D_i|}{|D|}H(D_i) \\ &=\sum_i\frac{|D_i|}{|D|}\sum_k-\frac{|D_{ik}|}{|D_i|}log\frac{|D_{ik}|}{|D_i|} \end{aligned} g(D,A)H(D)H(D∣A)=H(D)−H(D∣A)=−k∑∣D∣∣Ck∣log∣D∣∣Ck∣=i∑∣D∣∣Di∣H(Di)=i∑∣D∣∣Di∣k∑−∣Di∣∣Dik∣log∣Di∣∣Dik∣
(2)信息增益比
信息增益比就是信息增益与经验熵之比。
g R ( D , A ) = g ( D , A ) H ( D ) g_R(D,A)=\frac{g(D,A)}{H(D)} gR(D,A)=H(D)g(D,A)
待补
(3)Gini指数
CART分类树采用Gini指数选择特征,决定该特征的最优二值切分点。假设数据集中样本点属于第k类的概率为
p
k
p_k
pk,那么概率分布的基尼指数定义为
G
i
n
i
(
p
)
=
∑
k
p
k
(
1
−
p
k
)
=
1
−
∑
k
p
k
2
Gini(p) =\sum_kp_k(1-p_k)=1-\sum_kp_k^2
Gini(p)=k∑pk(1−pk)=1−k∑pk2
相对熵/KL散度
度量两个分布的相似程度