信息论的一些基础知识

基本概念

先说明一点:在信息论里面对数log默认都是指以2为底数。很多书籍资料都直接给出香农信息内容的公式,如公式(1)所示,可基本没有给出为什么是这样一种形式的合理化解释。在这里举个比较直白的例子。假设随机从0~63,共64个整数中随机均匀的挑选一个出来,并设法用二进制的形式去判别出来,所选的数字是多少,请问至少需要多少个二进制位?关于为什么选用二进制位,我想没必要解释吧,每一个二进制位都是一个yes or no的二元判别位。我们得到的是数字8,代表我们需要8位二进制位才能标识每一个数字。

下面是一些常用计算公式

自信息量

联合自信息量

条件自信息量

信息熵

熵就是所有类别所有可能值包含的信息期望值,这里的熵与物理化学领域的熵很相似,可能很多人对熵的概念很模糊,甚至不了解,熵说白了就是描述事物混乱度的一个指标,而自然界中的事物总是朝着混乱不整齐的方向的发展,所以说孤立系统下熵是只增不减的,在这里没有必要严格按照物理学假设的条件去定义,我们只需简单的认为熵越高事物越混乱,越低事物越规整就可以了,就像你把一沓整齐的纸扔出去,纸之间只会变得越来越乱。

条件熵

联合熵

根据链式规则,有

可以得出

信息增益Information Gain

系统原先的熵是H(X),在条件Y已知的情况下系统的熵(条件熵)为H(X|Y),信息增益就是这两个熵的差值。

熵表示系统的不确定度,所以信息增益越大表示条件Y对于确定系统的贡献越大。说白了,越来初始时熵很大,谁能让我下降的最快,也就是谁能让我最大程度的变规整,谁就是好的,因此对公式(7)而言,这个差值越大越好。

信息增益在特征选择中的应用

由(7)式可以直接推出词条w的信息增益,(7)式中的X代表类别的集合,Y代表w存在和不存在两种情况

p(ci)是第i类文档出现的概率;p(w)是在整个训练集中包含w的文档占全部文档的比例;p(ci|w)表示出现w的文档集合中属于类别i的文档所占的比例;表示没有出现w的文档集合中属于类别i的文档所占的比例。

信息增益在决策树中的应用

这个例子在ID3算法讲解中有详细介绍,这也是ID3算法的核心思想。

outlook temperature humidity windy play
sunny hot high FALSE no
sunny hot high TRUE no
overcast hot high FALSE yes
rainy mild high FALSE yes
rainy cool normal FALSE yes
rainy cool normal TRUE no
overcast cool normal TRUE yes
sunny mild high FALSE no
sunny cool normal FALSE yes
rainy mild normal FALSE yes
sunny mild normal TRUE yes
overcast mild high TRUE yes
overcast hot normal FALSE yes
rainy mild high TRUE no

(7)式中的X表示打球和不打球两种情况。

只看最后一列我们得到打球的概率是9/14,不打球的概率是5/14。因此在没有任何先验信息的情况下,系统的熵(不确定性)为

outlook temperature humidity windy play
  yes no   yes no   yes no   yes no yes no
sunny 2 3 hot 2 2 high 3 4 FALSE 6 2 9 5
overcast 4 0 mild 4 2 normal 6 1 TRUR 3 3    
rainy 3 2 cool 3 1                

如果选outlook作为决策树的根节点,(7)式中的Y为集合{sunny、overcast、rainy},此时的条件熵为

即选择outlook作为决策树的根节点时,信息增益为0.94-0.693=0.247。

同样方法计算当选择temperature、humidity、windy作为根节点时系统的信息增益,选择IG值最大的作为最终的根节点。

互信息Mutual Informantion

yj对xi的互信息定义为后验概率与先验概率比值的对数。

互信息越大,表明yj对于确定xi的取值的贡献度越大。

系统的平均互信息

可见平均互信息就是信息增益!

互信息在特征选择中的应用

词条w与类别ci的互信息为

p(w)表示出现w的文档点总文档数目的比例,p(w|ci)表示在类别ci中出现w的文档点总文档数目的比例。

对整个系统来说,词条w的互信息为

最后选互信息最大的前K个词条作为特征项。

这里再简单提一下,现在很少直接使用ID3算法做分类,而基于ID3优化的C4.5算法则很流行,C4.5中采用的不是信息增益,而是信息增益率的概念,关于信息增益率与C4.5的故事将在日后整理。

时间: 2024-10-18 15:36:45

信息论的一些基础知识的相关文章

学习算法你必须知道的一些基础知识(文末福利)

点击标题下「异步社区」可快速关注 机器学习是解决很多文本任务的基本工具,本文自然会花不少篇幅来介绍机器学习.要想搞明白什么是机器学习,一定要知道一些概率论和信息论的基本知识,本文就简单回顾一下这些知识. 1.1 概率论 概率就是描述一个事件发生的可能性.我们生活中绝大多数事件都是不确定的,每一件事情的发生都有一定的概率(确定的事件就是其概率为100%而已).天气预报说明天有雨,那么它也只是说明天下雨的概率很大.再比如掷骰子,我把一个骰子掷出去,问某一个面朝上的概率是多少?在骰子没有做任何手脚的情

数据通信的基础知识

数据通信的基础知识 典型的数据通信模型: 相关术语 通信的目的是传送消息. 数据(data)--运送消息的实体: 信号(signal)--数据的电气或电磁的表现: "数字信号"--代表消息的参数的取值是离散的: "模拟信号"--代表消息的参数的取值是连续的: 码元(code)--在使用时间域的波形标识数字信号时,则代表不同离散数值的基本波形就形成了码元: 在数字通信中常常使用时间间隔相同的符号来表示一个二进制数字,这样的时间间隔内的信号称为二进制码元.而这个间隔被称

MySQL数据库基础知识

day02 MySQL数据库基础知识 一.基础知识概述: 基础决定你这门课程的学习成败!只有学习好这些基础知识以后,你才能真正的运用自如.才能够对数据库有更深入的了解,道路才会越走越远. 二.基础知识: 1.数据库(database):数据库就好比是一个物理的文档柜,一个容器,把我们整理好的数据表等等归纳起来. 创建数据库命令:        create database 数据库名; 2.查看数据库         show databases; 3.打开指定的数据库         use 

linux入门基础知识及简单命令介绍

linux入门基础知识介绍 1.计算机硬件组成介绍 计算机主要由cpu(运算器.控制器),内存,I/O,外部存储等构成. cpu主要是用来对二进制数据进行运算操作,它从内存中取出数据,然后进行相应的运算操作.不能从硬盘中直接取数据. 内存从外部存储中取出数据供cpu运存.内存的最小单位是字节(byte) 备注:由于32的cpu逻辑寻址能力最大为32内存单元.因此32位cpu可以访问的最大内存空间为:4GB,算法如下: 2^32=2^10*2^10*2^10*2^2 =1024*1024*1024

BroadcastReceive基础知识总结

BroadcastReceive基础知识总结 1.BroadcastReceive简介 BroadcastReceive也就是"广播接收者"的意思,顾名思义,就是用来接收来自系统和应用中的广播 在Android系统中,广播体现在方方面面,例如当开机完成后系统会产生一条广播,接收到这条广播就能实现开机启动服务的功能,当网络状态改变时,系统会产生一条广播,接收到这条广播,就能及时的做出提示和保存数据等操作,当电池的电量改变的时候,系统会产生一条广播,接收到这条广播就能在电量低的时候告知用户

基础知识--:before伪元素和:after伪元素

http://book.51cto.com/art/201108/285688.htm 3.7  替换指定位置 大家都知道before和after是前.后的意思.但是奇怪的是,CSS中的:before伪元素和:after伪元素是为源文档中不存在的内容设置样式的. 没有内容怎么设置样式呢?别急!它们有一个content属性,一起使用就可以为某个选择器前.后的内容设置样式了. 下面就来了解一下:before伪元素和:after伪元素的用法. 视频教学:光盘/视频/3/3.7  替换指定位置.avi 

20_Shell语言———VIM编辑器基础知识三之窗口属性定制、配置文件及查找替换功能

Vim编辑器可以让用户按照需求来定制一些使用属性. 一.窗口属性定义 1)显示行号 行号不是内容,只是用来帮助用户确认文本所在的行.在vim编辑器中,如果要显示行号,可以在末行模式下输入: set number 如果想关闭,则可以在功能名称前面加上no,即: set nonumber 命令可以被简写,如set number 可以简写为 set nu:set nonumber 可以简写为 set nonu. 注意,上述设定仅对当前vim的进程有效,一旦当前进程关闭,这些设定就会失效,如果要使设定永

web基础知识(一)关于ajax传值最基础东西

HTTP方法之 GET对比POST GET:从指定的资源请求数据, POST:向指定的资源提交要被处理的数据 GET方法: 请注意,查询字符串(名称/值对)是在 GET 请求的 URL 中发送的: /test/demo_form.asp?name1=value1&name2=value2 有关 GET 请求的其他一些注释: GET 请求可被缓存 GET 请求保留在浏览器历史记录中 GET 请求可被收藏为书签 GET 请求不应在处理敏感数据时使用 GET 请求有长度限制 GET 请求只应当用于取回

线程基础知识

什么是线程: 在一个程序里的一个执行路线就叫做线程(thread).更准确的定义是:线程是"一个进程内部的控制序列" 一切进程至少都有一个执行线程 进程与线程 进程是资源竞争的基本单位 线程是程序执行的最小单位 线程共享进程数据,但也拥有自己的一部分数据 线程ID 一组寄存器 栈 errno 信号状态 优先级 fork和创建新线程的区别 当一个进程执行一个fork调用的时候,会创建出进程的一个新拷贝,新进程将拥有它自己的变量和它自己的PID.这个新进程的运行时间是独立的,它在执行时几乎