基于IG的特征评分方法

本文简单介绍了熵、信息增益的概念,以及如何使用信息增益对监督学习的训练样本进行评估,评估每个字段的信息量。
1、熵的介绍
       在信息论里面,熵是对不确定性的测量。通俗来讲,熵就是衡量随机变量随机性的指标。比如一个随机变量X的状态有{1,2,...,n},如果X取1的概率为1,其他状态为0,那么这个随机变量一点儿随机性都没有,也就是信息量为0;反之,如果每个状态的概率都相当,也就是说这个随机变量不倾向任何一个状态,因此随机性最高。(在离散情况,均匀分布的熵最高;在连续情况,正态分布的熵最高。)
       熵的计算公式:

I(xi)是状态xi的信息量,H(X)是对各个状态的信息量的加权平均。如果不理解I(xi) ,可以简单地这样理解,如果p(X=xi) 很小的话,也就是说这种情况出现很罕见,因此要推测该状态就比较不容易,随机性就高,所以该状态的信息量就大。
       另外,有一点需要注意的是,熵是有单位的,具体取决于用什么log底,b。比如b=2的时候,单位是bit。bit就是位,和平常我们学习的存储单位“bit”是一样的。这点如果不理解的话,大家可以做个简单的计算,令随机变量有两个状态,每个状态的概率为0.5,令b=2,这样算出来的熵是1(bit)。1bit表示我们如果要传输这个随机变量的信息的时候,需要存储量是1bit。熵还可以这样理解,熵就是我们要传输一个随机变量的信息时,需要使用的存储量。这种理解和上述是一致的,因为如果变量随机性高的话,我们传输时就需要使用更多的bit,所以,存储量大和随机性高是相同意思的。
       最后,为了避免大家对概念的混淆,我们总结如下一段话:
       熵越高,不确定性越高,随机性越强,信息量越大,需要的存储量就越大。

2、信息增益IG
       信息增益在不同情况下,意思稍微有点区别,我们使用的概念和决策时的概念是一致的。但是,另外一种情况,即如下介绍的KL-divergence,也是可以用来筛选特征的,所以,下面,我们首先介绍一下KL-divergence,大家如果感兴趣,可以专门去了解一下。
    在信息论和机器学习中,信息增益(Information Gain)或者Mutual Information都是表示Kullback–Leibler divergence,这个概念是用来描述两个随机变量之间的依赖程度,简单的理解,两个随机变量的KL-divergence就是已知某个随机变量的时候,我们还需要多少信息才能预测另一个随机变量的取值,因此,该指标是不对称的(asymmetric)。这个指标也可以用来做特征筛选,计算的指标就是一致某个特征的取值时,推测label还需要多少信息量,该量越大,说明特征提供的信息越少,否则说明特征提供的信息量很大,使得我们不需要额外的信息就可以推知label信息。
       在决策树中,信息增益和KL-divergence不一样,这里信息增益指的是在划分数据集之前和之后信息发生的变化。

这里信息增益有个关键点就是对样本进行划分。像决策树,就是根据特征字段的值对样本进行划分,使得获得的信息增益最大。

3、使用IG计算字段的信息量
       对于离散值的字段,我们根据该字段的取值情况对样本进行划分,将计算得到的信息增益作为字段的信息量。如果字段取值是连续性,熵和信息增益都有连续版本,但是连续版本需要求积分,计算量很大,所以,为了方便计算,我们先将字段执行离散化操作,然后计算字段的信息量。
    得到字段的信息量之后,我们就可以根据一个阈值对字段进行筛选,去掉那些没有信息的字段。也可以使用topN选择最优信息量的字段。

时间: 2024-11-05 17:30:10

基于IG的特征评分方法的相关文章

基于汉字字频特征实现99.99%准确率的新闻文本分类器(四)

基于汉字字频特征实现99.99%准确率的新闻文本分类器(一) 基于汉字字频特征实现99.99%准确率的新闻文本分类器(二) 基于汉字字频特征实现99.99%准确率的新闻文本分类器(三) 基于汉字字频特征实现99.99%准确率的新闻文本分类器(四) 回顾 上一节中,使用五层神经网络,对抽取出的汉字字频特征向量进行分类,得到了超过99%的准确率,在高准确率的前提下,没有陷入局部最优解,对一些在训练中,被指定了上千次不是军事类的新闻,只要内容是军事类的,就能被正确的找出,同样,混在军事类新闻里的[慈善

人脸识别之特征脸方法(Eigenface)

人脸识别之特征脸方法(Eigenface) [email protected] http://blog.csdn.net/zouxy09 因为需要,花了一点时间写了下经典的基于特征脸(EigenFace)的人脸识别方法的Matlab代码.这里仅把该代码分享出来.其实,在较新版本的OpenCV中已经提供了FaceRecognizer这一个类,里面不仅包含了特征脸EigenFace,还有FisherFace和LBPHFace这三种人脸识别方法,有兴趣的可以参考OpenCV的API手册,里面都有很详细

【原创】xgboost 特征评分的计算原理

xgboost是基于GBDT原理进行改进的算法,效率高,并且可以进行并行化运算: 而且可以在训练的过程中给出各个特征的评分,从而表明每个特征对模型训练的重要性, 调用的源码就不准备详述,本文主要侧重的是计算的原理,函数get_fscore源码如下, 源码来自安装包:xgboost/python-package/xgboost/core.py 通过下面的源码可以看出,特征评分可以看成是被用来分离决策树的次数,而这个与 <统计学习基础-数据挖掘.推理与推测>中10.13.1 计算公式有写差异,此处

Behavior Recognition via Sparse Spatio-Temporal Features 基于稀疏时空特征点的运动识别

Duanxx的论文阅读: Behavior Recognition via Sparse Spatio-Temporal Features 基于稀疏时空特征点的运动识别 ——Duanxx ——2015-04-24 1.Inreoduction In this work we develop a general framework for detecting and characterizing behavior from video sequences, making few underlyin

基于 Token 的身份验证方法

使用基于 Token 的身份验证方法,在服务端不需要存储用户的登录记录.大概的流程是这样的: 客户端使用用户名跟密码请求登录 服务端收到请求,去验证用户名与密码 验证成功后,服务端会签发一个 Token,再把这个 Token 发送给客户端 客户端收到 Token 以后可以把它存储起来,比如放在 Cookie 里或者 Local Storage 里 客户端每次向服务端请求资源的时候需要带着服务端签发的 Token 服务端收到请求,然后去验证客户端请求里面带着的 Token,如果验证成功,就向客户端

基于聚类的异常值检测方法( 1 )

韩家炜的书中提到也可以用基于聚类的方法去做Outlier的识别.的确,outlier这个概念是和cluster这样的场景很相关的.对于工业上的数据来说,一般这个cluster的数量会是1或者2.在找出了cluster后,我们可以发现outlier要么不属于任何的cluster,要么说outlier在这个cluster里显得如此的奇怪. 今天我们用DBSCAN的方法去发现cluster和outleir.DBSCAN的介绍可以见这篇文章: http://www.cnblogs.com/chaosim

bug统计分析续(一)基于SQL的Bug统计方法

上一篇为 bug统计分析初步 本篇重点讨论基于sql的bug统计分析方法. 1.与时间和状态的关系: 1)考察每个时间单位(年.月.日)产生的bug量 2)考察每个时间单位(年.月.日)解决的bug量 3)考察每个时间单位(年.月.日)遗留的bug量 4)考察每个bug遗留的时间单位(年.月.日) 5)考察平均bug遗留的时间单位(年.月.日) 6)通过结合1).2).3)考察分析发现.解决bug的时间段(月.日.时)峰值 其中6可以用来指导测试.开发效率 2.与时间.角色的关系: 1)考察每个

androidclient和站点数据交互的实现(基于Http协议获取数据方法)

androidclient一般不直接訪问站点数据库,而是像浏览器一样发送get或者post请求.然后站点返回client能理解的数据格式,client解析这些数据.显示在界面上.经常使用的数据格式是xml和json. 能够理解client事实上是一个你自定义标记语言的浏览器,一般浏览器能解析的是html+css的数据,而androidclient能解析的是xml和json(或者都不是而是你自定义的火星格式),服务端为了能满足client输出这样的数据格式的需求,不得不专门针对client开发不同

Asp.net基于session实现购物车的方法

本文实例讲述了asp.net基于session实现购物车的方法.分享给大家供大家参考,具体如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 7