欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

机器学习--条件熵和信息增益的关系,怎么理解条件熵?

程序员文章站 2024-02-11 16:53:52
...

熵的概念:

表示一个随机变量的复杂性或者不确定性。

举例:

假如双十一我要剁手买一件衣服,但是我一直犹豫着要不要买,我决定买这件事的不确定性(熵)为2.6。

条件熵的概念:

表示在直到某一条件后,某一随机变量的复杂性或不确定性。

举例:
  • 我在看了这件衣服的评价后,我决定买衣服这件事的不确定性是1.2。
  • 我在线下实体店试穿衣服后,我决定买衣服这件事的不确定性是0.9。

信息增益的概念:

表示在知道某一条件后,某一随机变量的不确定性的减少量。

上面条件熵给出了两个:
  • 一个是看了网上的评价,此时的信息增益是

    Gain1=2.6−1.2=1.4Gain1=2.6−1.2=1.4
    
  • 另一个是线下试穿了衣服,此时的信息增益

    Gain2=2.6−0.9=1.7Gain2=2.6−0.9=1.7
    

很显然我在线下试穿衣服之后对于决定买这件衣服的不确定度下降更多,更通俗的说就是我试穿衣服之后买这件衣服的可能性更大了。所以如果有看买家评价和线下试穿两个属性,首先应该选择线下试穿来构建内部节点。

条件熵的实列:

例子:

机器学习--条件熵和信息增益的关系,怎么理解条件熵?
可以求得随机变量X(嫁与不嫁)的信息熵为:
嫁的个数为6个,占1/2,那么信息熵为-1/2log1/2-1/2log1/2 = -log1/2=0.301
现在假如我知道了一个男生的身高信息
身高有三个可能的取值{矮,中,高}
矮包括{1,2,3,5,6,11,12},嫁的个数为1个,不嫁的个数为6个
中包括{8,9} ,嫁的个数为2个,不嫁的个数为0个
高包括{4,7,10},嫁的个数为3个,不嫁的个数为0个
先回忆一下条件熵的公式如下:
机器学习--条件熵和信息增益的关系,怎么理解条件熵?
我们先求出公式对应的:
H(Y|X = 矮) = -1/7log1/7-6/7log6/7=0.178
H(Y|X=中) = -1log1-0 = 0
H(Y|X=高) = -1log1-0=0
p(X = 矮) = 7/12,p(X =中) = 2/12,p(X=高) = 3/12
则可以得出条件熵为:
7/120.178+2/120+3/12*0 = 0.103

条件熵和信息增益的关系

信息增益是通过熵与条件熵的差计量的

 信息增益 = 信息熵 - 条件熵
举例:

掷一次骰子,由于六种结局(点)的出现概率相等,所以结局的不确定程度(熵)为log6 ,如果告诉你掷骰子的结局是单数或者双数,这显然是一个信息。这个信息消除了我们的一些不确定性。把消除的不确定性称为信息增益显然是妥当的。