信息增益(IG,Information Gain)的理解和计算
决策树构建中节点的选择靠的就是信息增益了。
信息增益是一种有效的特征选择方法,理解起来很简单:增益嘛,肯定是有无这个特征对分类问题的影响的大小,这个特征存在的话,会对分类系统带来多少信息量,缺了他行不行?
既然是个增益,就是个差了,减法计算一下,谁减去谁呢?
这里就用到了信息熵的概念,放到分类系统里面,信息熵如何计算呢?
分类系统里面无非是样本xi以及样本的分类结果yi,假设这个分类系统有k类,那么作为训练集来说,分类情况基本就定了,是按照样本的各个特征定的。那么在这些样本的信息的前提下,分类器有个结果,就自然包含了一种信息量在里面,可以用信息熵E(S)计算出来。
当然大家都知道熵表达的是不确定度,分布约均匀,越不确定,熵越大。
那么当把特征f引入的时候,会不会对系统的信息量有所影响呢?也就引入f之后的系统不确定度E(S|f)是多少呢?其实是个条件熵。也就是加入条件f之后,不确定度减少了多少?信息熵的有效减少量是多少?
为了计算条件熵,我们可以固定f的值,也就是根据f在训练集中呈现的值,计算条件熵E(S|f)。简单的说就是,把根据f划分的各个小系统的信息熵加权求和,权重就是各个小系统占系统S的比例(假设f有两个值0、1,选0的时候有a个样本,样本当然有类别y;f是1的时候有b个样本;a+b=n(样本总数);那么权重就是a/n和b/n了;每个小系统的信息当然跟大系统求法一样了)。
那么增益IG(f)=E(S)-E(S|f).
选择 f*=argmax(IG(f))的f作为第一个根节点,然后递归下去吧。
-----------
关于信息增益进行特征选择的问题,拿c类分类问题再理解下,如果一个特征都不参考,那么每个样本属于每个类的概率当然是1/c,此时整个系统的信息熵是最大的logc,一个极端的情况,加入特征A后,那么很明确的就将每个样本分到某个类别中去了,概率分布(1,0,0,0....),是c维的。
那么此时整个系统的信息熵是不是就是最小的0了,此时加入A后的信息增益为1-0=1。当然,很少会有这么管用的特征,所以就比较信息增益大的特征,用来特征选择。
信息增益(IG,Information Gain)的理解和计算的更多相关文章
- 通俗易懂的信息熵与信息增益(IE, Information Entropy; IG, Information Gain)
信息熵与信息增益(IE, Information Entropy; IG, Information Gain) 信息增益是机器学习中特征选择的关键指标,而学习信息增益前,需要先了解信息熵和条件熵这两个 ...
- 信息增益(Information Gain)(转)
当我们需要对一个随机事件的概率分布进行预测时,我们的预测应当满足全部已知的条件,而对未知的情况不要做任何主观假设.在这种情况下,概率分布最均匀,预测的风险最小.因为这时概率分布的信息熵最大,所以称之为 ...
- Theoretical comparison between the Gini Index and Information Gain criteria
Knowledge Discovery in Databases (KDD) is an active and important research area with the promise for ...
- 理解MapReduce计算构架
用Python编写WordCount程序任务 程序 WordCount 输入 一个包含大量单词的文本文件 输出 文件中每个单词及其出现次数(频数),并按照单词字母顺序排序,每个单词和其频数占一行,单词 ...
- gain 基尼系数
转至:http://blog.csdn.net/bitcarmanlee/article/details/51488204 在信息论与概率统计学中,熵(entropy)是一个很重要的概念.在机器学习与 ...
- 基于IG的特征评分方法
本文简单介绍了熵.信息增益的概念,以及如何使用信息增益对监督学习的训练样本进行评估,评估每个字段的信息量. 1.熵的介绍 在信息论里面,熵是对不确定性的测量.通俗来讲,熵就是衡量随机变量随 ...
- 【PRML读书笔记-Chapter1-Introduction】1.6 Information Theory
熵 给定一个离散变量,我们观察它的每一个取值所包含的信息量的大小,因此,我们用来表示信息量的大小,概率分布为.当p(x)=1时,说明这个事件一定会发生,因此,它带给我的信息为0.(因为一定会发生,毫无 ...
- 决策树算法之ID3与C4.5的理解与实现
github:代码实现 本文算法均使用python3实现 1. 决策树 决策树(decision tree)是一种基本的分类与回归方法(本文主要是描述分类方法),是基于树结构进行决策的,可以将其认 ...
- python 3计算KL散度(KL Divergence)
KL DivergenceKL( Kullback–Leibler) Divergence中文译作KL散度,从信息论角度来讲,这个指标就是信息增益(Information Gain)或相对熵(Rela ...
随机推荐
- 解决octave for windows安装包无法通过SourceForge下载的问题
近期SourceForge访问不了,可以通过访问SourceForge的ftp镜像ftp://sourceforge.nchc.org.tw/进行下载: ftp下载工具可以使用FileZilla,可在 ...
- Android 手机上安装并运行 Ubuntu 12.04(转,没实测)
设备需要root权限,并且安装了BusyBox最小 1GHz 处理器(推荐)Android 系统版本 2.1 或以上Android 设备需要自定义的ROM固件SD卡至2.5GB (安装大映像的需要3. ...
- COJ 0018 移动盒子
20605移动盒子 难度级别:B: 运行时间限制:1000ms: 运行空间限制:51200KB: 代码长度限制:2000000B 试题描述 你有一行盒子,从左到右依次编号为1,2,3,……,n.可以执 ...
- BZOJ2274: [Usaco2011 Feb]Generic Cow Protests
2274: [Usaco2011 Feb]Generic Cow Protests Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 196 Solve ...
- 【jQuery】jQuery API 过 一 遍
closest, parents <!DOCTYPE html> <html> <head> <meta charset="utf-8"& ...
- 01背包之求第K优解——Bone Collector II
http://acm.hdu.edu.cn/showproblem.php?pid=2639 题目大意是,往背包里赛骨头,求第K优解,在普通01背包的基础上,增加一维空间,那么F[i,v,k]可以理解 ...
- winPcap_5_打开适配器并捕获数据包
知道如何获取适配器的信息了,那我们就开始一项更具意义的工作,打开适配器并捕获数据包.编写一个程序,将每一个通过适配器的数据包打印出来. 打开设备的函数是 pcap_open(). (Open a ge ...
- Nodejs in Visual Studio Code 05.Swig+Bootstrap
1. 开始 准备好Express+Swig的练习代码:https://github.com/Mengkzhaoyun/nodepractise 准备好AdminLTE后台管理模版:https://ww ...
- 在Visual Studio中使用AStyle
最近在做一个C++项目,我们使用了一个叫做AStyle的插件来做代码格式化. 下载方式1:通过Visual Studio下载 启动Visual Studio,以下简称VS: 英文版VS:VS主菜单 & ...
- CSS padding margin border属性详解【转载】
本文转载自:http://www.cnblogs.com/linjiqin/p/3556497.html ,感谢相关博主. 图解CSS padding.margin.border属性 W3C组织建议把 ...