面试官:听说你还不知道条件熵是什么?

大家好,我是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(YX)
面试官问我,在一个具体的问题里,条件熵 H ( Y ∣ X ) H(Y|X) H(YX)是怎么计算的,以及它的含义是什么呢?

本文内容大约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=1NP(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_{x\in X}P(x)H(Y|X=x)\\ &=-\sum_{x\in X}P(x)\sum_{y\in Y}P(y|x)\log P(y|x)\\ &=-\sum_{x\in X}\sum_{y\in Y}P(x,y)\log P(y|x) \end{aligned} H(YX)=xXP(x)H(YX=x)=xXP(x)yYP(yx)logP(yx)=xXyYP(x,y)logP(yx)
条件熵 H ( Y ∣ X ) H(Y|X) H(YX)表示在已知随机变量 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)=32log3231log31=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(YX=)=21log2121log21=1
同理:
H ( Y ∣ X = 不 高 ) = − 1 log ⁡ 1 − 0 log ⁡ 0 = 0 H(Y|X=不高)=-1\log 1-0\log 0=0 H(YX=)=1log10log0=0
注意:我们一般约定,当 p = 0 p=0 p=0时, p log ⁡ p = 0 p\log 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(YX=)=0.67=P(X=)H(YX=)+P(X=)H(YX=)
当我们用另一个变量 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算法:

在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

口袋AI算法

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值