基于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选择最优信息量的字段。
基于IG的特征评分方法的更多相关文章
- 基于Python的信用评分卡模型分析(二)
上一篇文章基于Python的信用评分卡模型分析(一)已经介绍了信用评分卡模型的数据预处理.探索性数据分析.变量分箱和变量选择等.接下来我们将继续讨论信用评分卡的模型实现和分析,信用评分的方法和自动评分 ...
- 基于Python的信用评分卡模型分析(一)
信用风险计量体系包括主体评级模型和债项评级两部分.主体评级和债项评级均有一系列评级模型组成,其中主体评级模型可用“四张卡”来表示,分别是A卡.B卡.C卡和F卡:债项评级模型通常按照主体的融资用途,分为 ...
- 【原创】xgboost 特征评分的计算原理
xgboost是基于GBDT原理进行改进的算法,效率高,并且可以进行并行化运算: 而且可以在训练的过程中给出各个特征的评分,从而表明每个特征对模型训练的重要性, 调用的源码就不准备详述,本文主要侧重的 ...
- 解决CSS垂直居中的几种方法(基于绝对定位,基于视口单位,Flexbox方法)
在CSS中对元素进行水平居中是非常简单的:如果它是一个行内元素,就对它的父元素应用 text-align: center ;如果它是一个块级元素,就对它自身应用 margin: auto.然而如果要对 ...
- XGBboost 特征评分的计算原理
xgboost是基于GBDT原理进行改进的算法,效率高,并且可以进行并行化运算,而且可以在训练的过程中给出各个特征的评分,从而表明每个特征对模型训练的重要性, 调用的源码就不准备详述,本文主要侧重的是 ...
- 基于HALCON的模板匹配方法总结
注:很抱歉,忘记从转载链接了,作者莫怪.... 基于HALCON的模板匹配方法总结 很早就想总结一下前段时间学习HALCON的心得,但由于其他的事情总是抽不出时间.去年有过一段时间的集中学习,做了许多 ...
- Javascript基于对象三大特征 -- 冒充对象
Javascript基于对象三大特征 基本概述 JavaScript基于对象的三大特征和C++,Java面向对象的三大特征一样,都是封装(encapsulation).继承(inheritance ) ...
- 经典文本特征表示方法: TF-IDF
引言 在信息检索, 文本挖掘和自然语言处理领域, IF-IDF 这个名字, 从它在 20 世纪 70 年代初被发明, 已名震江湖近半个世纪而不曾衰歇. 它表示的简单性, 应用的有效性, 使得它成为不同 ...
- 基于 Token 的身份验证方法
使用基于 Token 的身份验证方法,在服务端不需要存储用户的登录记录.大概的流程是这样的: 客户端使用用户名跟密码请求登录 服务端收到请求,去验证用户名与密码 验证成功后,服务端会签发一个 Toke ...
随机推荐
- 【Mac + Appium + Python3.6学习(二)】之Android自动化测试,appium-desktop配置和简易自动化测试脚本
上一篇文章介绍安装appium测试环境,这一片研究介绍如何测试Android自动化. 上一篇地址:<[Mac + Appium学习(一)]之安装Appium环境> 这一篇参考:<Ma ...
- form表单提交方式
form表单提交方式总结一下: 一.利用submit按钮实现提交,当点击submit按钮时,触发onclick事件,由JavaScript里函数判断输入内容是否为空,如果为空,返回false, 不提交 ...
- 安装ruby环境
安装ruby环境 通过 homebrew 安装 Ruby 1. 首先,须要在系统上安装 homebrew 在命令行下,运行下面命令就可以完毕 homebrew 的安装(安装过程中将提示输入当前用户的p ...
- java FTP 上传下载删除文件
在JAVA程序中,经常需要和FTP打交道,比如向FTP服务器上传文件.下载文件,本文简单介绍如何利用jakarta commons中的FTPClient(在commons-net包中)实现上传下载文件 ...
- ssh 面试
Struts1工作原理1. 初始化:struts框架的总控制器ActionServlet是一个Servlet,它在web.xml中配置成自动启动的Servlet,在启动时总 控制器会读取配置文件(st ...
- nodejs rar/zip加密压缩、解压缩
1.shell/cmd命令行压缩解压缩 (1)zip压缩解压缩 zip压缩:zip -rP{密码} <目标文件.zip> <源文件> //默认覆盖现有文件 zip解压缩:zip ...
- try git
Git allows groups of people to work on the same documents (often code) at the same time, and without ...
- SAP ABAP 常见系统变量
因为版权的问题,纯手工打,且行且珍惜. SY-PAGEO 当前页号 SY-LSIND 列表索引页 SY-DATUM 当前日期 SY-UZEIT 当前时间 SY-LISTI 上一个列表的索引 SY-L ...
- Python 基础函数
函数: 在程序设计中,函数是指用于进行某种计算的一系列语句的有名称的组合. 定义一个函数时,需要指定函数的名称并写下一系列程序语句.定义时不会执行,运行代码时,先加载进内存中,之后使用名称来调用这个函 ...
- SharePoint服务器端对象模型 之 序言
对于刚刚开始接触SharePoint的开发人员,即使之前有较为丰富的ASP.NET开发经验,在面对SharePoint时候可能也很难找到入手的方向.对于任何一种开发平台而言,学习开发的过程大致会包括: ...