介绍信息熵和信息增益之前,先介绍信息增量的概念
1、信息量
定义:信息多少的量度,与事件发生的概率相关。
公式:信息量用
I
I
I表示, 记事件A发生的概率为p,则事件A的信息量计算公式:
I
A
=
−
log
2
(
p
)
I_A = -\log_2(p)
IA=−log2(p)
例子 :比如说,我们掷骰子,点数为一事件的概率为
1
6
\frac{1}{6}
61, 那么该事件的信息量为:
I
B
=
−
log
2
(
1
6
)
=
log
2
6
≈
2.6
I_B = -\log_2(\frac{1}{6}) = \log_26 \approx2.6
IB=−log2(61)=log26≈2.6
2、信息熵
定义:信息熵是信息量的期望值,描述的是不确定性。
公式:由定义我们可以得到熵的计算公式:
E
(
S
)
=
−
∑
i
=
1
n
p
i
×
log
2
(
p
i
)
E(S) = - \sum_{i=1}^{n}{p_i \times \log_2(p_i)}
E(S)=−i=1∑npi×log2(pi)
S
:
样
本
空
间
S:样本空间
S:样本空间
p
i
:
事
件
i
发
生
的
概
率
p_i:事件i发生的概率
pi:事件i发生的概率
3、信息熵冗余度
1 − E ( S ) 1-E(S) 1−E(S)
例子:
举一个的例子:对游戏活跃用户进行分层,分为高活跃、中活跃、低活跃三种层次。
模式A按照用户比例分别为20%,30%,50%划分。
模式B按照用户比例分别为5%,5%,90%划分。
模
式
A
划
分
方
式
下
游
戏
的
熵
为
:
模式A划分方式下游戏的熵为:
模式A划分方式下游戏的熵为:
E
(
S
)
=
−
0.2
×
log
2
0.2
−
0.3
×
log
2
0.3
−
0.5
×
log
2
0.5
≈
1.485
E(S) = -0.2\times\log_20.2 -0.3\times\log_20.3 - 0.5\times\log_20.5\approx1.485
E(S)=−0.2×log20.2−0.3×log20.3−0.5×log20.5≈1.485
模
式
B
划
分
方
式
下
游
戏
的
熵
为
:
模式B划分方式下游戏的熵为:
模式B划分方式下游戏的熵为:
E
(
S
)
=
−
0.05
×
log
2
0.05
−
0.05
×
log
2
0.05
−
0.9
×
log
2
0.9
≈
0.569
E(S) = -0.05\times\log_20.05-0.05\times\log_20.05-0.9\times\log_20.9\approx0.569
E(S)=−0.05×log20.05−0.05×log20.05−0.9×log20.9≈0.569
因此可以知道,模式A下的游戏的熵值更大,不确定性更强,游戏更加丰富。
4、条件熵
定义:已知随机变量 X 的条件下随机变量 Y 的不确定性, 随机变量X给定条件下 Y 的条件概率分布的熵对 X 的数学期望。
公式:条件熵用
H
(
Y
∣
X
)
H(Y|X)
H(Y∣X)表示,计算公式为:
H
(
Y
∣
X
)
=
∑
i
=
1
n
p
i
×
H
(
Y
∣
X
=
x
i
)
H(Y|X) = \sum_{i=1}^{n}{p_i\times H(Y|X= x_i)}
H(Y∣X)=i=1∑npi×H(Y∣X=xi)
条件熵 H(Y|X)相当于联合熵 H(X,Y)减去单独的熵 H(X),即H(Y|X)=H(X,Y)−H(X):
eg:有以下数据
整体熵为:
E
(
S
)
=
−
5
15
×
log
2
(
5
15
)
−
10
15
×
log
2
(
10
15
)
≈
0.9182
E(S) =-\frac{5}{15}\times\log_2(\frac{5}{15})-\frac{10}{15}\times\log_2(\frac{10}{15}) \approx0.9182
E(S)=−155×log2(155)−1510×log2(1510)≈0.9182
男性:
E
(
S
1
)
=
−
3
8
×
log
2
(
3
8
)
−
5
8
log
2
(
5
8
)
≈
0.9543
E(S_1) = -\frac{3}{8}\times\log_2(\frac{3}{8})-\frac{5}{8}\log_2(\frac{5}{8})\approx0.9543
E(S1)=−83×log2(83)−85log2(85)≈0.9543
女性:
E
(
S
2
)
=
−
2
7
×
log
2
(
2
7
)
−
5
7
×
log
2
(
5
7
)
≈
0.8631
E(S_2) = -\frac{2}{7}\times\log_2(\frac{2}{7})-\frac{5}{7}\times\log_2(\frac{5}{7})\approx0.8631
E(S2)=−72×log2(72)−75×log2(75)≈0.8631
性别条件熵:
E
(
S
,
A
)
=
8
15
×
E
(
S
1
)
+
7
15
×
E
(
S
2
)
≈
0.9118
E(S,A) = \frac{8}{15}\times E(S_1)+\frac{7}{15}\times E(S_2)\approx0.9118
E(S,A)=158×E(S1)+157×E(S2)≈0.9118
5、信息增益
定义:信息增益是信息熵的差值。
当我们使用机器学习模型的时候,特征值的正确选择能够提高模型的准确率,那么最有力的特征值使得识别率最高,也就是加入了特征值以后整体熵就变小了,减少的熵值就称作信息增益。
公式:信息增益用
G
r
a
i
n
(
S
,
A
)
Grain(S,A)
Grain(S,A)表示,计算公式:
G
r
a
i
n
(
S
,
A
)
=
E
(
S
)
−
E
(
S
,
A
)
=
E
(
S
)
−
H
(
S
∣
A
)
Grain(S,A) = E(S) - E(S,A) = E(S) - H(S|A)
Grain(S,A)=E(S)−E(S,A)=E(S)−H(S∣A)
eg:有条件熵中的例子可知,加入性别以后的信息增益为:
G
a
i
n
(
S
,
A
)
=
E
(
S
)
−
E
(
S
,
A
)
=
0.9184
−
0.9118
≈
0.0064
Gain(S,A) = E(S) - E(S,A) = 0.9184-0.9118\approx0.0064
Gain(S,A)=E(S)−E(S,A)=0.9184−0.9118≈0.0064
6、信息增益率
定义:某一特征值的信息增益与该特征值的信息熵之比。
公式:信息增益率用
E
γ
(
S
,
A
)
E_\gamma(S,A)
Eγ(S,A)表示,计算公式:
E
γ
(
S
,
A
)
=
G
a
i
n
(
S
,
A
)
E
(
A
)
E_\gamma(S,A) = \frac{Gain(S,A)}{E(A)}
Eγ(S,A)=E(A)Gain(S,A)
eg:性别信息增益率
性别熵:
E
(
A
)
=
−
8
15
×
log
2
(
8
15
)
−
7
15
×
log
2
(
7
15
)
≈
0.9968
E(A) = -\frac{8}{15}\times\log_2(\frac{8}{15}) - \frac{7}{15}\times\log_2(\frac{7}{15})\approx0.9968
E(A)=−158×log2(158)−157×log2(157)≈0.9968
E γ ( S , A ) = G a i n ( S , A ) E ( A ) = 0.0064 0.9968 ≈ 0.0064 E_\gamma(S,A) =\frac{ Gain(S,A)}{E(A)} = \frac{0.0064}{0.9968}\approx0.0064 Eγ(S,A)=E(A)Gain(S,A)=0.99680.0064≈0.0064
7、基尼系数
定义:反映了从数据集D中随机抽取两个样本,其类别标记不一致的概率。
公式:基尼系数用
G
i
n
i
(
D
)
Gini(D)
Gini(D)表示,计算公式:
G
i
n
i
(
D
)
=
∑
i
=
1
n
p
i
×
(
1
−
p
i
)
=
∑
i
=
1
n
p
i
2
Gini(D) = \sum_{i=1}^{n}{p_i\times(1-p_i)} = \sum_{i=1}^{n}{p_i^2}
Gini(D)=i=1∑npi×(1−pi)=i=1∑npi2
eg:
8、附件
计算熵算法:
import math
def entropy(*c):
if (len(c)<=0):
return -1
result = 0;
for x in c:
result += (-x)*math.log(x,2)
return result
print(entropy(0.99,0.01))
print(entropy(0.5,0.5))
print(entropy(0.333,0.333,0.333))
9、参考文献:
https://baike.baidu.com/item/%E4%BF%A1%E6%81%AF%E9%87%8F/420401
https://zhuanlan.zhihu.com/p/41134986
https://blog.csdn.net/guomutian911/article/details/78599450
https://www.cnblogs.com/qcloud1001/p/6735352.html
https://cloud.tencent.com/developer/article/1526414