我是靠谱客的博主 乐观老鼠,最近开发中收集的这篇文章主要介绍面试官:听说你还不知道条件熵是什么?,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

大家好,我是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_{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(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=不高)=-1log 1-0log 0=0 H(YX=)=1log10log0=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(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算法:

在这里插入图片描述

最后

以上就是乐观老鼠为你收集整理的面试官:听说你还不知道条件熵是什么?的全部内容,希望文章能够帮你解决面试官:听说你还不知道条件熵是什么?所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(39)

评论列表共有 0 条评论

立即
投稿
返回
顶部