赞
踩
信息熵主要研究的是对一个信号能够提供信息的多少进行量化。1948年,香农引入信息熵,将其定义为离散随机事件的出现概率。一个系统越是有序,信息熵就越低;反之,一个系统越是混乱,信息熵就越高。所以说,信息熵可以被认为是系统有序化程度的一个度量
如果一个随机变量
Y
Y
Y的可能取值为:
X
=
y
1
,
y
2
,
⋯
y
n
X={y_1, y_2,\cdots y_n}
X=y1,y2,⋯yn,其概率分布分别为:
P
(
y
i
)
P(y_i)
P(yi)。则随机变量
Y
Y
Y的熵定义为:
H
(
Y
)
=
∑
i
=
1
n
−
P
(
y
i
)
l
o
g
(
P
(
y
i
)
)
H(Y)=\sum_{i=1}^n -P(y_i)log(P(y_i))
H(Y)=∑i=1n−P(yi)log(P(yi))
信息熵的值越大,说明越不确定
在信息论中,常常用以2为底的对数来计算,计算出来的单位称为bits;在机器学习中,常常用自然对数来计算,计算出来的单位称为nats。以下,都采用自然对数来进行计算
条件熵表示在条件
X
X
X 下
Y
Y
Y 的信息熵,记作:
H
(
Y
∣
X
)
=
∑
i
=
1
n
P
(
x
i
)
H
(
Y
∣
x
i
)
=
∑
i
=
1
n
{
P
(
x
i
)
∗
[
−
∑
j
=
1
m
P
(
Y
j
∣
x
i
)
l
o
g
(
P
(
Y
j
∣
x
i
)
)
]
}
H(Y|X)=\sum_{i=1}^{n} P(x_i)H(Y|x_i)=\sum_{i=1}^n \{P(x_i)*[-\sum_{j=1}^m P(Y_j|x_i)log(P(Y_j|x_i))]\}
H(Y∣X)=∑i=1nP(xi)H(Y∣xi)=∑i=1n{P(xi)∗[−∑j=1mP(Yj∣xi)log(P(Yj∣xi))]}
x
i
x_i
xi:条件
X
X
X的每种可能取值,假设共有
n
n
n种取值
P
(
x
i
)
P(x_i)
P(xi):具有
x
i
x_i
xi取值的样本在总样本种所占的比例
H
(
Y
∣
x
i
)
H(Y|x_i)
H(Y∣xi):选取所有包含
x
i
x_i
xi取值的样本,基于随机变量
Y
Y
Y来计算信息熵
Y
j
∣
x
i
Y_j|x_i
Yj∣xi:所有包含
x
i
x_i
xi取值的样本中,特征
Y
Y
Y的第
j
j
j种取值(假设共有
m
m
m种取值)
P
(
Y
j
∣
x
i
)
P(Y_j |x_i)
P(Yj∣xi):所有包含
x
i
x_i
xi取值的样本中,
Y
j
Y_j
Yj取值所占的比例
信息增益描述了一个特征带来的信息量的多少,常用于决策树的构建和特征选择
信息增益越大,就越说明该特征对确定某个事件的贡献越大(降低了某个事件的不确定性),或者说,该特征是某个事件的主要特征
案例1:计算下列系统的信息熵、条件熵和信息增益
假设有下列训练样本:
设置"是否外出打球"这一随机变量为 Y Y Y,湿度为随机变量 X X X
先统计
P
(
y
=
n
o
)
=
5
/
14
;
P
(
y
=
y
e
s
)
=
9
/
14
;
n
=
2
P(y=no)=5/14; P(y=yes) = 9/14; n=2
P(y=no)=5/14;P(y=yes)=9/14;n=2
则:
H
(
Y
)
=
−
5
/
14
∗
l
o
g
(
5
/
14
)
−
9
/
14
∗
l
o
g
(
9
/
14
)
=
0.6518
H(Y)=-5/14*log(5/14) - 9/14*log(9/14)=0.6518
H(Y)=−5/14∗log(5/14)−9/14∗log(9/14)=0.6518
条件熵计算
统计:
P
(
x
=
h
i
g
h
)
=
7
/
14
=
1
/
2
;
P
(
x
=
n
o
r
m
a
l
)
=
7
/
14
=
1
/
2
P(x=high) = 7/14=1/2; P(x=normal)=7/14=1/2
P(x=high)=7/14=1/2;P(x=normal)=7/14=1/2
H
(
Y
∣
X
湿度
)
=
P
(
x
=
h
i
g
h
)
∗
H
(
Y
∣
x
=
h
i
g
h
)
+
P
(
x
=
n
o
r
m
a
l
)
∗
H
(
Y
∣
x
=
n
o
r
m
a
l
)
H(Y|X_{\text{湿度}} ) = P(x=high)*H(Y|x=high)+P(x=normal)*H(Y|x=normal)
H(Y∣X湿度)=P(x=high)∗H(Y∣x=high)+P(x=normal)∗H(Y∣x=normal)
而:
H
(
Y
∣
x
=
h
i
g
h
)
=
−
P
(
Y
=
y
e
s
∣
x
=
h
i
g
h
)
∗
l
o
g
(
P
(
Y
=
y
e
s
∣
x
=
h
i
g
h
)
−
P
(
Y
=
n
o
∣
x
=
h
i
g
h
∗
l
o
g
(
P
(
Y
=
n
o
∣
x
=
h
i
g
h
)
=
−
3
/
7
∗
l
o
g
(
3
/
7
)
−
4
/
7
∗
l
o
g
(
4
/
7
)
=
0.6829
H
(
Y
∣
x
=
n
o
r
m
a
l
)
=
−
6
/
7
∗
l
o
g
(
6
/
7
)
−
1
/
7
∗
l
o
g
(
1
/
7
)
=
0.4101
H(Y|x=normal)=-6/7*log(6/7)-1/7*log(1/7)=0.4101
H(Y∣x=normal)=−6/7∗log(6/7)−1/7∗log(1/7)=0.4101
最终:
H
(
Y
∣
X
湿度
)
=
1
/
2
∗
0.6829
+
1
/
2
∗
0.4101
=
0.5465
H(Y|X_{\text{湿度}})=1/2*0.6829+1/2*0.4101=0.5465
H(Y∣X湿度)=1/2∗0.6829+1/2∗0.4101=0.5465
信息增益 = 信息熵 - 条件熵=0.6518-0.5465=0.1053
也就是说,引入了湿度这个变量之后,就使得是否打球这个变量的信息熵就从0.6518减小到了0.5465,变得更加确定了
信息增益越大,该特征变量就越关键
考虑到系统的总信息熵是固定不变的,因此,某特征变量的条件熵越小,该变量就越关键
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。