文章目录

  • 熵和信息增益
  • 熵(Entropy)
  • 条件熵(Conditional Entropy)
  • 联合熵(Joint Entropy)
  • 相对熵(Relative Entropy)
    • 相对熵的性质
  • 交叉熵(Cross Entropy)
  • 相对熵、交叉熵和熵的关系
  • 信息增益(Information Gain)
  • 信息增益比(Information Gain Ratio)
  • 一张图带你看懂熵和信息增益

熵和信息增益

熵(Entropy)

  熵表示随机变量不确定性的度量。假设离散随机变量XXX可以取到nnn个值,其概率分布为
P(X=xi)=pi,i=1,2,…,nP(X=x_i)=p_i, \quad i = 1,2,\ldots,n P(X=xi​)=pi​,i=1,2,…,n
则XXX的熵定义为
H(X)=−∑i=1npilogpiH(X) = -\sum_{i=1}^n p_i log{p_i} H(X)=−i=1∑n​pi​logpi​
由于熵只依赖XXX的分布,与XXX本身的值没有关系,所以熵也可以定义为
H(p)=−∑i=1npilogpiH(p) = -\sum_{i=1}^n p_i log{p_i} H(p)=−i=1∑n​pi​logpi​
  熵越大,则随机变量的不确定性越大,并且0≥H(p)≤log⁡n0\geq{H(p)}\leq\log{n}0≥H(p)≤logn。

  当随机变量只取两个值000和111的时候,XXX的分布为
P(X=1)=p,P(x=0)=1−p,0≥p≤1P(X=1)=p, \quad P(x=0)=1-p, \quad 0\geq{p}\leq{1} P(X=1)=p,P(x=0)=1−p,0≥p≤1
熵则是
H(p)=−plog⁡2p−(1−p)log⁡2(1−p)H(p) = -p\log_2 p-(1-p) \log_2(1-p) H(p)=−plog2​p−(1−p)log2​(1−p)
此时随机变量为伯努利分布,熵随概率变化的曲线如下图所示

import numpy as np
from math import log
import matplotlib.pyplot as plt
from matplotlib.font_manager import FontProperties
%matplotlib inline
font = FontProperties(fname='/Library/Fonts/Heiti.ttc')p = np.arange(0.01, 1, 0.01)
entro = -p*np.log2(p) - (1-p)*np.log2(1-p)plt.plot(p, entro)
plt.title('伯努利分布时熵和概率的关系', fontproperties=font)
plt.xlabel('p')
plt.ylabel('H(p)')
plt.show()

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bw68zGuu-1583493171945)(%E6%A6%82%E7%8E%87%E8%AE%BA-%E7%86%B5%E5%92%8C%E4%BF%A1%E6%81%AF%E5%A2%9E%E7%9B%8A_files/%E6%A6%82%E7%8E%87%E8%AE%BA-%E7%86%B5%E5%92%8C%E4%BF%A1%E6%81%AF%E5%A2%9E%E7%9B%8A_3_0.png)]

  当p=0p=0p=0和p=1p=1p=1时熵值为000,此时随机变量完全没有不确定性;当p=0.5p=0.5p=0.5时的熵值最大,随机变量的不确定性最大。

条件熵(Conditional Entropy)

  假设有随机变量(X,Y)(X,Y)(X,Y),其联合概率为
p(X=xi,Y=yi),i=1,2,…,n;j=1,2,…,mp(X=x_i,Y=y_i), \quad i=1,2,\ldots,n; \quad j=1,2,\ldots,m p(X=xi​,Y=yi​),i=1,2,…,n;j=1,2,…,m
  条件熵H(Y∣X)H(Y|X)H(Y∣X)表示在已知随机变量XXX的条件下随机变量YYY的不确定性,定义为
H(Y∣X)=∑i=1nP(X=xi)H(Y∣X=xi)H(Y|X) = \sum_{i=1}^n P(X=x_i) H(Y|X=x_i) H(Y∣X)=i=1∑n​P(X=xi​)H(Y∣X=xi​)
通过公式可以把条件熵理解为在得知某一确定信息的基础上获取另外一个信息时所获得的信息量

  当熵和条件熵中的概率由数据估计获得时,所对应的熵与条件熵分别称为经验熵(empirical entropy)和经验条件熵(empirical conditional entropy)。

联合熵(Joint Entropy)

  假设有随机变量(X,Y)(X,Y)(X,Y),其联合概率为
p(X=xi,Y=yi)=pij,i=1,2,…,n;j=1,2,…,mp(X=x_i,Y=y_i)=p_{ij}, \quad i=1,2,\ldots,n; \quad j=1,2,\ldots,m p(X=xi​,Y=yi​)=pij​,i=1,2,…,n;j=1,2,…,m
  联合熵度量的是一个联合分布的随机系统的不确定性,它的定义为
H(X,Y)=−∑i=1n∑j=1mp(X=xi,Y=yj)log⁡p(X=xi,Y=yj)H(X,Y) = -\sum_{i=1}^n \sum_{j=1}^m p(X=x_i,Y=y_j) \log{p(X=x_i,Y=y_j)} H(X,Y)=−i=1∑n​j=1∑m​p(X=xi​,Y=yj​)logp(X=xi​,Y=yj​)
由此可以对联合熵进行简单的化简
KaTeX parse error: No such environment: align at position 8: \begin{̲a̲l̲i̲g̲n̲}̲ H(X,Y) & = -\s…
同理可证H(X,Y)=H(Y)+H(X∣Y)H(X,Y)=H(Y)+H(X|Y)H(X,Y)=H(Y)+H(X∣Y),即联合熵表示对一个两个随机变量的随机系统,可以先观察一个随机变量获取信息,在这之后可以在拥有这个信息量的基础上观察第二个随机变量的信息量,并且无论先观察哪一个随机变量对信息量的获取都是没有任何影响的

  同理可得一个含有nnn个独立的随机变量的随机系统(X1,X2,…,Xn)(X_1,X_2,\ldots,X_n)(X1​,X2​,…,Xn​)的联合熵为
H(X1,X2,…,Xn)=∑i=1nH(Xi)H(X_1,X_2,\ldots,X_n) = \sum_{i=1}^n H(X_i) H(X1​,X2​,…,Xn​)=i=1∑n​H(Xi​)
可以发现即使是含有nnn个随机变量的随机系统无论先观察哪一个随机变量对信息量的获取也是没有任何影响的。

相对熵(Relative Entropy)

  相对熵有时候也称为KL散度 (Kullback–Leibler divergence)。

  设p(x)p(x)p(x)、q(x)q(x)q(x)是离散随机变量XXX中取值的两个概率分布,则ppp对qqq的相对熵是:
KaTeX parse error: No such environment: align at position 8: \begin{̲a̲l̲i̲g̲n̲}̲ DKL(p||q) & = …

相对熵的性质

  1. 如果p(x)p(x)p(x)和q(x)q(x)q(x)两个分布相同,那么相对熵等于0
  2. DKL(p∣∣q)≠DKL(q∣∣p)DKL(p||q)≠DKL(q||p)DKL(p∣∣q)​=DKL(q∣∣p),相对熵具有不对称性
  3. DKL(p∣∣q)≥0DKL(p||q)≥0DKL(p∣∣q)≥0(利用Jensen不等式可证)
    KaTeX parse error: No such environment: align at position 8: \begin{̲a̲l̲i̲g̲n̲}̲ DKL(p||q) & = …
    其中∑i=1nq(X=xi)=1\sum_{i=1}^n q(X=x_i)=1∑i=1n​q(X=xi​)=1,得证DKL(p∣∣q)≥0DKL(p||q)≥0DKL(p∣∣q)≥0
  4. 相对熵可以用来衡量两个概率分布之间的差异,上面公式的意义就是求ppp与qqq之间的对数差在ppp上的期望值

交叉熵(Cross Entropy)

  定义:基于相同时间测度的两个概率分布p(x)p(x)p(x)和q(x)q(x)q(x)的交叉熵是指,当基于一个“非自然”(相对于“真实分布”p(x)p(x)p(x)而言)的概率分布q(x)q(x)q(x)进行编码时,在时间集合中唯一标识一个事件所需要的平均比特数(使用非真实分布q(x)q(x)q(x)所指定的策略消除系统不确定性所需要付出的努力大小)。

  假设随机变量XXX可以取到nnn个值。现在有关于样本集的两个概率分布p(X=xi)p(X=x_i)p(X=xi​)和q(X=xi)q(X=x_i)q(X=xi​),其中p(X=xi)p(X=x_i)p(X=xi​)为真实分布,q(X=xi)q(X=x_i)q(X=xi​)非真实分布。如果用真实分布p(X=xi)p(X=x_i)p(X=xi​)来衡量识别别一个样本所需要编码长度的期望(平均编码长度)为:
KaTeX parse error: No such environment: align at position 8: \begin{̲a̲l̲i̲g̲n̲}̲ H(p) & = \sum_…
  如果使用非真实分布q(X=xi)q(X=x_i)q(X=xi​)来表示来自真实分布p(X=xi)p(X=x_i)p(X=xi​)的平均编码长度,则是:
H(p,q)=∑i=1np(X=xi)log⁡1q(X=xi)H(p,q) = \sum_{i=1}^n p(X=x_i)\log{\frac{1}{q(X=x_i)}} H(p,q)=i=1∑n​p(X=xi​)logq(X=xi​)1​
  因为用q(X=xi)q(X=x_i)q(X=xi​)来编码的样本来自于分布q(X=xi)q(X=x_i)q(X=xi​),所以H(p,q)H(p,q)H(p,q)中的概率是p(X=xi)p(X=x_i)p(X=xi​),此时就将H(p,q)H(p,q)H(p,q)称之为交叉熵。

  举个例子。考虑一个随机变量XXX,真实分布p(X)=(12,14,18,18)p(X)=({\frac{1}{2}},{\frac{1}{4}},{\frac{1}{8}},{\frac{1}{8}})p(X)=(21​,41​,81​,81​),非真实分布q(X)=(14,14,14,14)q(X)=({\frac{1}{4}},{\frac{1}{4}},{\frac{1}{4}},{\frac{1}{4}})q(X)=(41​,41​,41​,41​),则H(p)=1.75bits最短平均码长H(p)=1.75bits \text{最短平均码长}H(p)=1.75bits最短平均码长,交叉熵
H(p,q)=12log⁡24+14log⁡24+18log⁡24+18log⁡24=2bitsH(p,q)={\frac{1}{2}}\log_24+{\frac{1}{4}}\log_24+{\frac{1}{8}}\log_24+{\frac{1}{8}}\log_24=2bits H(p,q)=21​log2​4+41​log2​4+81​log2​4+81​log2​4=2bits
由此可以看出根据非真实分布q(X=xi)q(X=x_i)q(X=xi​)得到的平均码长大于根据真实分布p(X=xi)p(X=x_i)p(X=xi​)得到的平均码长,但这种大于是个例还是总是会这样呢?

相对熵、交叉熵和熵的关系

  此处化简一下相对熵的公式。
KaTeX parse error: No such environment: align at position 8: \begin{̲a̲l̲i̲g̲n̲}̲ DKL(p||q) & = …
  如果此时联立熵的公式和交叉熵的公式
KaTeX parse error: No such environment: align at position 8: \begin{̲a̲l̲i̲g̲n̲}̲ 熵 & = H(p) \\ …
KaTeX parse error: No such environment: align at position 8: \begin{̲a̲l̲i̲g̲n̲}̲ 交叉熵 & = H(p,q)…
即可推出
DKL(p∣∣q)=H(p,q)−H(p)DKL(p||q)=H(p,q)−H(p) DKL(p∣∣q)=H(p,q)−H(p)
  通过上述公式可以得出当用非真实分布q(x)q(x)q(x)得到的平均码长比真实分布p(x)p(x)p(x)得到的平均码长多出的比特数就是相对熵。

  又因为DKL(p∣∣q)≥0DKL(p||q)≥0DKL(p∣∣q)≥0,则H(p,q)≥H(p)H(p,q)≥H(p)H(p,q)≥H(p),当p(x)=q(x)p(x)=q(x)p(x)=q(x)时,此时交叉熵等于熵。
  并且当H(p)H(p)H(p)为常量时(注:在机器学习中,训练数据分布是固定的),最小化相对熵DKL(p∣∣q)DKL(p||q)DKL(p∣∣q)等价于最小化交叉熵 H(p,q)H(p,q)H(p,q)也等价于最大化似然估计。

信息增益(Information Gain)

  假设有随机变量(X,Y)(X,Y)(X,Y),信息增益表示特征XXX的信息而使得类YYY的信息不确定性减少的程度。

  特征AAA对训练集DDD的信息增益记作g(D,A)g(D,A)g(D,A),则可以把该信息增益定义为集合DDD的经验熵与特征AAA给定条件下DDD的经验条件熵H(D∣A)H(D|A)H(D∣A)之差
g(D,A)=H(D)−H(D∣A)g(D,A) = H(D) - H(D|A) g(D,A)=H(D)−H(D∣A)
其中H(D)H(D)H(D)表示对数据集DDD进行分类的不确定性;H(D∣A)H(D|A)H(D∣A)表示在特征AAA给定的条件下对数据集DDD进行分类的不确定性;g(D,A)g(D,A)g(D,A)表示由于特征AAA而使得对数据集DDD的分类的不确定性减少的程度。因此可以发现对于数据集DDD而言,信息增益依赖于特征,不同的特征往往具有不同的信息增益,信息增益大的特征具有更强的分类能力。

信息增益比(Information Gain Ratio)

  假设有随机变量(X,Y)(X,Y)(X,Y),特征AAA对数据集DDD的信息增益比记作gR(D,A)g_R(D,A)gR​(D,A),定义为
gR(D,A)=g(D,A)HA(D)g_R(D,A) = {\frac{g(D,A)}{H_A(D)}} gR​(D,A)=HA​(D)g(D,A)​
其中特征熵HA(D)=−∑i=1nDiDlog⁡2DiDH_A(D) = -\sum_{i=1}^n {\frac{D_i}{D}} \log_2 {\frac{D_i}{D}}HA​(D)=−∑i=1n​DDi​​log2​DDi​​,nnn是特征AAA的取值个数。

一张图带你看懂熵和信息增益

  假设有随机变量(X,Y)(X,Y)(X,Y),H(X)H(X)H(X)表示XXX的熵,H(Y)H(Y)H(Y)表示YYY的熵,H(X∣Y)H(X|Y)H(X∣Y)表示已知YYY时XXX的条件熵,H(Y∣X)H(Y|X)H(Y∣X)表示已知XXX时YYY的条件熵,I(X,Y)I(X,Y)I(X,Y)表示信息增益,H(X,Y)H(X,Y)H(X,Y)表示的联合熵。

概率论-熵和信息增益相关推荐

  1. 决策树(Decision Tree)、决策树的构建、决策树流程、树的生长、熵、信息增益比、基尼系数

    决策树(Decision Tree).决策树的构建.决策树流程.树的生长.熵.信息增益比.基尼系数 目录

  2. python get score gain_什么是“熵和信息增益”?(What is “entropy and information gain”?)...

    什么是"熵和信息增益"?(What is "entropy and information gain"?) 我正在读这本书( NLTK ),令人困惑. 熵被定义 ...

  3. 决策树中的熵与信息增益

    引言 最近在学习决策树,花了一上午学习了熵与信息增益,这里打算使用一个实例来帮助自己加深理解,和大家一起学习. 熵 熵这一概念是由信息论的鼻祖克劳德·香农创造出来的,刚开始谁也不知道这个词的具体意思( ...

  4. 机器学习--决策树(熵、信息增益(ID3)、C4.5、多方式源码实战)

    谈决策树之前先做一些预备性知识: 1.什么是信息?如何衡量信息的多少?怎么衡量? 信息:从广义上讲,是事物运动时发出的信号所带来的消息,是事物存在方式和运动规律的一种表现形式.不同的事物具有不同的存在 ...

  5. 一文理清楚:熵,条件熵,KL散度(相对熵),交叉熵,联合熵,信息增益,信息增益比,GINI系数

    熵 熵是表示随机变量不确定性的度量. 设 X X X是一个有N个取值有限的随机变量,其概率分布为: P ( X = i ) = p i , i = 1 , 2... N P(X=i)=p_i , i= ...

  6. 熵、信息增益、信息增益率

    一.熵 (1)原理 初中物理我们对"熵"这个东西懵懵懂懂,印象中仿佛对物体内部的热效应有关,时隔这么多年在机器学习.深度学习领域的学习中又看见了它的踪影,不免有点让人有点熟悉又陌生 ...

  7. 特征选择,熵,条件熵,信息增益

    特征选择,熵,条件熵,信息增益 特征选择 例子 熵 条件熵 信息增益 例子 特征选择 特征选择是在于选取能够提高分类器学习效率的特征.对于没有分类能力的特征,经验上扔掉这样的特征对最终的分类结果并没有 ...

  8. 独家 | 熵–数据科学初学者必知的关键概念(附链接)

    作者:SETHNEHA 翻译:刘思婧 校对:王可汗 本文约3700字,建议阅读18分钟. 本文为大家介绍了熵的概念.计算及其在决策树算法中的应用. 引言 熵是机器学习的关键概念之一.对于任何机器学习爱 ...

  9. 免费教材丨第51期:数学基础课程----概率论教程、机器学习中的数学基础

    小编说 过去几个月里,有不少人联系我,向我表达他们对人工智能.数据科学.对利用机器学习技术探索统计规律性,开发数据驱动的产品的热情.但是,我发现他们中有些人实际上缺少为了获取有用结果的必要的数学直觉和 ...

最新文章

  1. 斩获“卡脖子”领域世界冠军!这支华科战队全网刷屏,平均年龄24岁
  2. 华为BGP的基本配置命令
  3. Java黑皮书课后题第5章:*5.23(演示抵消错误)当处理一个很大的数字或很小的数字时候,会产生一个抵消错误。……编写程序对上面的数列从左到右和从右向左计算的结果进行比较,n=50000
  4. Undefined control sequence. 问题
  5. 在ABAP debugger里手动trigger DB commit
  6. JasperReport里面的Demo
  7. 理解 loader 的工作流
  8. webhook机器人php源码,webhook机器人
  9. r4烧录卡内核安装_R4 Wood内核怎么用?R4烧录卡Wood R4内核详细使用教程
  10. mac快捷键大全超清示意图动态壁纸
  11. 小鹤双拼入门和小鹤音形的搜狗输入法配置方法
  12. 苹果通用链接跳转apple-app-site-association
  13. 企业或个人域名备案怎么弄
  14. 如何使用IceSword冰刃
  15. 设计模式--设配器模式
  16. 一个40岁的男人如果穷得一无所有该怎么办?
  17. seekg(0,ios::beg)不起作用的原因和解决方法
  18. Holm–Bonferroni method
  19. 从表征到行动---意向性的自然主义进路(续一)
  20. 转义 输入法表情符号

热门文章

  1. 屏幕适配(刘海屏、18:9屏幕尺寸、隐藏SystemUI)
  2. 2023年江苏转本考试科目安排
  3. 若果win7 旗舰版主题突然不能用了,变成 xp经典模式的主题了,这里给出建议办法
  4. html whitespace属性,不简单的 white-space 属性
  5. 机器翻译技术现状评述与展望 | 行业观察
  6. 【新2023Q2押题JAVA】华为OD机试 - 优秀员工统计
  7. python爬虫基础(9:验证识别之滑块验证)
  8. C语言——婚礼上的谎言
  9. android receiver 更新activity,java – Android BroadcastReceiver onReceive更新MainActivity中的TextView...
  10. 国家中小学网络云平台正式上线,百度保障1.8亿学生线上学习不卡顿