前面我们总结了信息熵的概念通俗理解信息熵 - 知乎专栏,这次我们来理解一下条件熵。

我们首先知道信息熵是考虑该随机变量的所有可能取值,即所有可能发生事件所带来的信息量的期望。公式如下:

我们的条件熵的定义是:定义为X给定条件下,Y的条件概率分布的熵对X的数学期望

这个还是比较抽象,下面我们解释一下:

设有随机变量(X,Y),其联合概率分布为

条件熵H(Y|X)表示在已知随机变量X的条件下随机变量Y的不确定性。随机变量X给定的条件下随机变量Y的条件熵H(Y|X)

公式

下面推导一下条件熵的公式:

注意

注意,这个条件熵,不是指在给定某个数(某个变量为某个值)的情况下,另一个变量的熵是多少,变量的不确定性是多少?

因为条件熵中X也是一个变量,意思是在一个变量X的条件下(变量X的每个值都会取),另一个变量Y熵对X的期望。

这是最容易错的!

例子

下面通过例子来解释一下:

假如我们有上面数据:

设随机变量Y={嫁,不嫁}

我们可以统计出,嫁的个数为6/12 = 1/2

不嫁的个数为6/12 = 1/2

那么Y的熵,根据熵的公式来算,可以得到H(Y) = -1/2log1/2 -1/2log1/2

为了引出条件熵,我们现在还有一个变量X,代表长相是帅还是帅,当长相是不帅的时候,统计如下红色所示:

可以得出,当已知不帅的条件下,满足条件的只有4个数据了,这四个数据中,不嫁的个数为1个,占1/4

嫁的个数为3个,占3/4

那么此时的H(Y|X = 不帅) = -1/4log1/4-3/4log3/4

p(X = 不帅) = 4/12 = 1/3

同理我们可以得到:

当已知帅的条件下,满足条件的有8个数据了,这八个数据中,不嫁的个数为5个,占5/8

嫁的个数为3个,占3/8

那么此时的H(Y|X = 帅) = -5/8log5/8-3/8log3/8

p(X = 帅) = 8/12 = 2/3

计算结果

有了上面的铺垫之后,我们终于可以计算我们的条件熵了,我们现在需要求:

H(Y|X = 长相)

也就是说,我们想要求出当已知长相的条件下的条件熵。

根据公式我们可以知道,长相可以取帅与不帅俩种

条件熵是另一个变量Y熵对X(条件)的期望。

公式为:

H(Y|X=长相) = p(X =帅)*H(Y|X=帅)+p(X =不帅)*H(Y|X=不帅)

然后将上面已经求得的答案带入即可求出条件熵!

这里比较容易错误就是忽略了X也是可以取多个值,然后对其求期望!!

总结

其实条件熵意思是按一个新的变量的每个值对原变量进行分类,比如上面这个题把嫁与不嫁按帅,不帅分成了俩类。

然后在每一个小类里面,都计算一个小熵,然后每一个小熵乘以各个类别的概率,然后求和。

我们用另一个变量对原变量分类后,原变量的不确定性就会减小了,因为新增了Y的信息,可以感受一下。不确定程度减少了多少就是信息的增益。

后面会讲信息增益的概念,信息增益也是决策树算法的关键。

致谢:

德川,皓宇,继豪,施琦

【转】通俗理解条件熵相关推荐

  1. 通俗理解条件熵-数学

    就是决策树里面选划分属性用到的计算 条件熵越小表示划分之后各个集合越纯净 前面我们总结了信息熵的概念通俗理解信息熵 - 知乎专栏,这次我们来理解一下条件熵. 我们首先知道信息熵是考虑该随机变量的所有可 ...

  2. 通俗理解tf.nn.conv2d() tf.nn.conv3d( )参数的含义 pytorhc 卷积

    20210609 例如(3,3,(3,7,7))表示的是输入图像的通道数是3,输出图像的通道数是3,(3,7,7)表示过滤器每次处理3帧图像,卷积核的大小是3 x 7 x 7. https://blo ...

  3. 通俗理解决策树算法中信息增益的

    转载自   通俗理解决策树算法中信息增益的 通俗理解决策树算法中的信息增益 在决策树算法的学习过程中,信息增益是特征选择的一个重要指标,它定义为一个特征能够为分类系统带来多少信息,带来的信息越多,说明 ...

  4. 通俗理解tf.name_scope()、tf.variable_scope()

    前言:最近做一个实验,遇到TensorFlow变量作用域问题,对tf.name_scope().tf.variable_scope()等进行了较为深刻的比较,记录相关笔记: tf.name_scope ...

  5. dft变换的两幅图_离散傅立叶变换DTFT、DFT和FFT在工程与数学结合的通俗理解

    1.离散时间傅里叶变换DTFT 何为DTFT?就是对连续时间非周期信号进行抽样(乘积),得到的离散时间非周期信号再求傅里叶变换的过程就是DTFT.其实等同于信号频谱与脉冲信号频谱的卷积,这样得到的就是 ...

  6. 通俗理解kaggle比赛大杀器xgboost + XGBOOST手算内容 转

    通俗理解kaggle比赛大杀器xgboost    转 https://blog.csdn.net/v_JULY_v/article/details/81410574 XGBOOST有手算内容 htt ...

  7. 通俗理解注意力机制中的Q、K和V表示的具体含义

    https://www.jianshu.com/p/7a61533fd73b 通俗理解讲解一 以翻译为例 source:我 是 中国人 target: I am Chinese 比如翻译目标单词为 I ...

  8. 对于随机森林的通俗理解

    原文:http://blog.csdn.net/mao_xiao_feng/article/details/52728164 对于随机森林的通俗理解 一.决策树 决策树是机器学习最基本的模型,在不考虑 ...

  9. CNN笔记:通俗理解卷积神经网络

    通俗理解卷积神经网络(cs231n与5月dl班课程笔记) http://blog.csdn.net/v_july_v/article/details/51812459 1 前言 2012年我在北京组织 ...

最新文章

  1. 逃课上网吧编程、玩摇滚的另类学生,如何成为独角兽公司的 CTO?
  2. 《敏捷开发绩效管理》扩展阅读(敏捷开发绩效管理,敏捷团队绩效管理)
  3. 怎么恢复手机上的照片呢?
  4. ios html5 网页取消默认样式
  5. win10系统excel2019单元格显示完整的年月日时分秒设置方法
  6. PWN-PRACTICE-BUUCTF-17
  7. 什么浏览器好用_手机浏览器不只UC,好用的浏览器还有这些
  8. selenium3 + java 日志
  9. Python3之requests模块
  10. python stdout.write_python 中sys.stdout.write 和 print sys.stdout的区别
  11. jQuery Mobile中翻转拨动开关slider的data-*选项
  12. 【福利】PyTorch中文版官方教程来啦(附下载)
  13. hexo matery 相册 视频相册 相册加密 描述备注
  14. 数据挖掘(Data Mining)扫盲笔记
  15. Python之面向对象-类与 类之间的关系
  16. 彻底理解View事件体系!
  17. Failed to open the host Key database file
  18. 程序员应该掌握的英语词汇
  19. 目前世界最穷的国家是哪一个?
  20. Elsevier 投稿各种状态总结

热门文章

  1. JDK 8的依赖使用
  2. 项目中常见的英文缩写
  3. Prawn:使用Ruby生成PDF更简捷
  4. linux系统下如何切换到root用户
  5. 【群体智能】布谷鸟搜索算法
  6. 自学python在家赚钱-自学python后,可以自己独立做什么事情来挣钱吗?
  7. 未能加载文件或程序集“XXX”或它的某一个依赖项。试图加载格式不正确的程序。(转)...
  8. 1849公共部门人力资源管理 (2)
  9. python赋值语句不合法的是_Python入门习题1.温度转换
  10. 右手坐标系和左手坐标系(转)很详细,有图示