概述
大家好,我是Xueliang。
想起来去年我参加秋招的时候有一位面试官问我决策树相关的问题。决策树中有一个概念叫做信息增益,其计算公式如下:
G
a
i
n
(
Y
,
X
)
=
H
(
Y
)
−
H
(
Y
∣
X
)
Gain(Y,X)=H(Y)-H(Y|X)
Gain(Y,X)=H(Y)−H(Y∣X)
面试官问我,在一个具体的问题里,条件熵
H
(
Y
∣
X
)
H(Y|X)
H(Y∣X)是怎么计算的,以及它的含义是什么呢?
本文内容大约1k字,阅读耗时大约5分钟。
本篇文章主要分为两个部分:
- 信息熵
- 条件熵
信息熵
在决策树算法中,熵是一个非常非常重要的概念。
一件事发生的概率越小,我们说它所蕴含的信息量越大。
比如:我们听女人能怀孕不奇怪,如果某天听到哪个男人怀孕了,我们就会觉得emmm…信息量很大了。
所以我们这样衡量信息量:
i
(
y
)
=
−
log
P
(
y
)
i(y)=-log P(y)
i(y)=−logP(y)
其中
P
(
y
)
P(y)
P(y)代表事件
y
y
y发生的概率。
而信息熵就是所有可能发生的事件的信息量的期望:
H
(
Y
)
=
−
∑
i
=
1
N
P
(
y
i
)
log
P
(
y
i
)
H(Y)=-sum_{i=1}^{N}P(y_i)log P(y_i)
H(Y)=−i=1∑NP(yi)logP(yi)
H
(
Y
)
H(Y)
H(Y) 表达了Y事件发生的不确定度。
条件熵
条件熵:表示在
X
X
X给定条件下,
Y
Y
Y的条件概率分布的熵对
X
X
X的数学期望。其数学推导如下:
H
(
Y
∣
X
)
=
∑
x
∈
X
P
(
x
)
H
(
Y
∣
X
=
x
)
=
−
∑
x
∈
X
P
(
x
)
∑
y
∈
Y
P
(
y
∣
x
)
log
P
(
y
∣
x
)
=
−
∑
x
∈
X
∑
y
∈
Y
P
(
x
,
y
)
log
P
(
y
∣
x
)
begin{aligned} H(Y|X)&=sum_{xin X}P(x)H(Y|X=x)\ &=-sum_{xin X}P(x)sum_{yin Y}P(y|x)log P(y|x)\ &=-sum_{xin X}sum_{yin Y}P(x,y)log P(y|x) end{aligned}
H(Y∣X)=x∈X∑P(x)H(Y∣X=x)=−x∈X∑P(x)y∈Y∑P(y∣x)logP(y∣x)=−x∈X∑y∈Y∑P(x,y)logP(y∣x)
条件熵
H
(
Y
∣
X
)
H(Y|X)
H(Y∣X)表示在已知随机变量
X
X
X的条件下随机变量
Y
Y
Y的不确定性。注意一下,条件熵中
X
X
X也是一个变量,意思是在一个变量
X
X
X的条件下(变量
X
X
X的每个值都会取到),另一个变量
Y
Y
Y的熵对
X
X
X的期望。
举个例子:
例:女生决定主不主动追一个男生的标准有两个:颜值和身高,如下表所示:
上表中随机变量
Y
Y
Y={追,不追},P(
Y
Y
Y=追)=2/3,P(
Y
Y
Y=不追)=1/3,得到
Y
Y
Y的熵:
H
(
Y
)
=
−
2
3
log
2
3
−
1
3
log
1
3
=
0.918
begin{aligned} H(Y)&=-frac{2}{3}log frac{2}{3}-frac{1}{3}log frac{1}{3}\ &=0.918 end{aligned}
H(Y)=−32log32−31log31=0.918
这里还有一个特征变量
X
X
X,
X
X
X={高,不高}。当
X
X
X=高时,追的个数为1,占
1
/
2
1/2
1/2,不追的个数为1,占
1
/
2
1/2
1/2,此时:
H
(
Y
∣
X
=
高
)
=
−
1
2
log
1
2
−
1
2
log
1
2
=
1
H(Y|X=高)=-frac{1}{2}log frac{1}{2}-frac{1}{2}log frac{1}{2}=1
H(Y∣X=高)=−21log21−21log21=1
同理:
H
(
Y
∣
X
=
不
高
)
=
−
1
log
1
−
0
log
0
=
0
H(Y|X=不高)=-1log 1-0log 0=0
H(Y∣X=不高)=−1log1−0log0=0
注意:我们一般约定,当
p
=
0
p=0
p=0时,
p
log
p
=
0
plog p=0
plogp=0。
所以我们得到条件熵的计算公式:
H
(
Y
∣
X
=
身
高
)
=
P
(
X
=
不
高
)
∗
H
(
Y
∣
X
=
不
高
)
+
P
(
X
=
高
)
∗
H
(
Y
∣
X
=
高
)
=
0.67
begin{aligned} H(Y|X=身高)&=P(X=不高)*H(Y|X=不高)+P(X=高)*H(Y|X=高)\ =0.67 end{aligned}
H(Y∣X=身高)=0.67=P(X=不高)∗H(Y∣X=不高)+P(X=高)∗H(Y∣X=高)
当我们用另一个变量
X
X
X对原变量
Y
Y
Y分类后,原变量
Y
Y
Y的不确定性就会减小了(即熵值减小)。而熵就是不确定性,不确定程度减少了多少其实就是信息增益。 这就是信息增益
G
a
i
n
(
Y
,
X
)
Gain(Y,X)
Gain(Y,X)的由来。
在决策树算法中,最重要的就是划分属性的选择,即我们选择哪一个属性来进行划分。其中,在ID3算法中,我们所采用的度量标准就是我们前面所提到的“信息增益”。当属性 X i X_i Xi所带来的信息增益最大时,则意味着用 X i X_i Xi属性划分,其所获得的“纯度”提升最大。我们所要做的,就是在所有属性中找到信息增益最大的属性。
总结
在本文中,我们一起学习了在决策树算法中的一个重要概念:条件熵,希望对大家有所帮助。
参考资料:
[1] 《机器学习》 周志华。
更多算法基础知识介绍,前沿论文解读,欢迎关注微信公众号,口袋AI算法:
最后
以上就是乐观老鼠为你收集整理的面试官:听说你还不知道条件熵是什么?的全部内容,希望文章能够帮你解决面试官:听说你还不知道条件熵是什么?所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复