文本分类入门(十一)特征选择方法之信息增益

2016-02-19 17:49 6 1 收藏

只要你有一台电脑或者手机,都能关注图老师为大家精心推荐的文本分类入门(十一)特征选择方法之信息增益,手机电脑控们准备好了吗?一起看过来吧!

【 tulaoshi.com - Web开发 】

  前文提到过,除了开方检验(CHI)以外,信息增益(IG,Information Gain)也是很有效的特征选择方法。但凡是特征选择,总是在将特征的重要程度量化之后再进行选择,而如何量化特征的重要性,就成了各种方法间最大的不同。开方检验中使用特征与类别间的关联性来进行这个量化,关联性越强,特征得分越高,该特征越应该被保留。

  在信息增益中,重要性的衡量标准就是看特征能够为分类系统带来多少信息,带来的信息越多,该特征越重要。

  才因此先回忆一下信息论中有关信息量(就是熵)的定义。说有这么一个变量X,它可能的取值有n多种,分别是x1,x2,,xn,每一种取到的概率分别是P1,P2,,Pn,那么X的熵就定义为:

  意思就是一个变量可能的变化越多(反而跟变量具体的取值没有任何关系,只和值的种类多少以及发生概率有关),它携带的信息量就越大(因此我一直觉得我们的政策法规信息量非常大,因为它变化很多,基本朝令夕改,笑)。

  对分类系统来说,类别C是变量,它可能的取值是C1,C2,,Cn,而每一个类别出现的概率是P(C1),P(C2),,P(Cn),因此n就是类别的总数。此时分类系统的熵就可以表示为:

  有同学说不好理解呀,这样想就好了,文本分类系统的作用就是输出一个表示文本属于哪个类别的值,而这个值可能是C1,C2,,Cn,因此这个值所携带的信息量就是上式中的这么多。

  信息增益是针对一个一个的特征而言的,就是看一个特征t,系统有它和没它的时候信息量各是多少,两者的差值就是这个特征给系统带来的信息量,即增益。系统含有特征t的时候信息量很好计算,就是刚才的式子,它表示的是包含所有特征时系统的信息量。

  问题是当系统不包含t时,信息量如何计算?我们换个角度想问题,把系统要做的事情想象成这样:说教室里有很多座位,学生们每次上课进来的时候可以随便坐,因而变化是很大的(无数种可能的座次情况);但是现在有一个座位,看黑板很清楚,听老师讲也很清楚,于是校长的小舅子的姐姐的女儿托关系(真辗转啊),把这个座位定下来了,每次只能给她坐,别人不行,此时情况怎样?对于座次的可能情况来说,我们很容易看出以下两种情况是等价的:(1)教室里没有这个座位;(2)教室里虽然有这个座位,但其他人不能坐(因为反正它也不能参与到变化中来,它是不变的)。

  对应到我们的系统中,就是下面的等价:(1)系统不包含特征t;(2)系统虽然包含特征t,但是t已经固定了,不能变化。

  我们计算分类系统不包含特征t的时候,就使用情况(2)来代替,就是计算当一个特征t不能变化时,系统的信息量是多少。这个信息量其实也有专门的名称,就叫做条件熵,条件嘛,自然就是指t已经固定这个条件。

  但是问题接踵而至,例如一个特征X,它可能的取值有n多种(x1,x2,,xn),当计算条件熵而需要把它固定的时候,要把它固定在哪一个值上呢?答案是每一种可能都要固定一下,计算n个值,然后取均值才是条件熵。而取均值也不是简单的加一加然后除以n,而是要用每个值出现的概率来算平均(简单理解,就是一个值出现的可能性比较大,固定在它上面时算出来的信息量占的比重就要多一些)。

  因此有这样两个条件熵的表达式:

  这是指特征X被固定为值xi时的条件熵,

  这是指特征X被固定时的条件熵,注意与上式在意义上的区别。从刚才计算均值的讨论可以看出来,第二个式子与第一个式子的关系就是:

  图片看不清楚?请点击这里查看原图(大图)。

  具体到我们文本分类系统中的特征t,t有几个可能的值呢?注意t是指一个固定的特征,比如他就是指关键词经济或者体育,当我们说特征经济可能的取值时,实际上只有两个,经济要么出现,要么不出现。一般的,t的取值只有t(代表t出现)和(代表t不出现),注意系统包含t但t 不出现与系统根本不包含t可是两回事。

  因此固定t时系统的条件熵就有了,为了区别t出现时的符号与特征t本身的符号,我们用T代表特征,而用t代表T出现,那么:

  与刚才的式子对照一下,含义很清楚对吧,P(t)就是T出现的概率,就是T不出现的概率。这个式子可以进一步展开,其中的

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

  另一半就可以展开为:

  因此特征T给系统带来的信息增益就可以写成系统原本的熵与固定特征T后的条件熵之差:

  图片看不清楚?请点击这里查看原图(大图)。

  公式中的东西看上去很多,其实也都很好计算。比如P(Ci),表示类别Ci出现的概率,其实只要用1除以类别总数就得到了(这是说你平等的看待每个类别而忽略它们的大小时这样算,如果考虑了大小就要把大小的影响加进去)。再比如P(t),就是特征T出现的概率,只要用出现过T的文档数除以总文档数就可以了,再比如P(Ci|t)表示出现T的时候,类别Ci出现的概率,只要用出现了T并且属于类别Ci的文档数除以出现了T的文档数就可以了。

  从以上讨论中可以看出,信息增益也是考虑了特征出现和不出现两种情况,与开方检验一样,是比较全面的,因而效果不错。但信息增益最大的问题还在于它只能考察特征对整个系统的贡献,而不能具体到某个类别上,这就使得它只适合用来做所谓全局的特征选择(指所有的类都使用相同的特征集合),而无法做本地的特征选择(每个类别有自己的特征集合,因为有的词,对这个类别很有区分度,对另一个类别则无足轻重)。

  看看,导出的过程其实很简单,没有什么神秘的对不对。可有的学术论文里就喜欢把这种本来很直白的东西写得很晦涩,仿佛只有读者看不懂才是作者的真正成功。

  咱们是新一代的学者,咱们没有知识不怕被别人看出来,咱们有知识也不怕教给别人。所以咱都把事情说简单点,说明白点,大家好,才是真的好。

  系列文章:

  文本分类入门(一)文本分类问题的定义

  文本分类入门(二)文本分类的方法

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

  文本分类入门(三)统计学习方法

  文本分类入门(四)训练Part 1

  文本分类入门(五)训练Part 2

  文本分类入门(六)训练Part 3

  文本分类入门(七)相关概念总结

  文本分类入门(八)中英文文本分类的异同

  文本分类入门(九)文本分类问题的分类

  文本分类入门(十)特征选择算法之开方检验

来源:http://www.tulaoshi.com/n/20160219/1616120.html

延伸阅读
TPrinter * pPrinter=Printer(); pPrinter-Title="打印Memo1中的数据"; pPrinter-BeginDoc(); int y=10; for(int i=0;iMemo1-Lines-Count;i++) { pPrinter-Canvas-TextOut(10,y,Memo1-Lines-Strings[i]); y+=pPrinter-Canvas-TextHeight("A"); } pPrinter-EndDoc();
标签: Web开发
SVG中渲染文本 SVG的强大能力之一是它可以将文本控制到标准HTML页面不可能有的程度,而无须求助图像或其它插件。任何可以在形状或路径上执行的操作(如绘制或滤镜)都可以在文本上执行。尽管SVG的文本渲染如此强大,但是还是有一个不足之处:SVG不能执行自动换行。如果文本比允许空间长,则简单地将它切断。多数情况下,创建多行文本需要多...
孩子会与父母有许多相似之处,如身材高矮、体形胖瘦、肤色深浅、眼睛大小、鼻子高低……很多很多都与父母的遗传有关,哪些是百分百遗传的呢? 1.寿命 寿命是有遗传基础的。我们可以看到,有些家族中的成员个个长寿,但也有短命的家族存在。寿命的长短有家族聚集的倾向性。如果你的家族中有长寿的先例,那么你的孩子长寿的可能...
标签: 电脑入门
我们在操作过程中,经常会遇到一些带有链接、字体效果等其他信息的多信息文本,但是在我们需要使用其他的工具,比如邮件等,传送这些文本时,却遇到不兼容导致一些内容显示不出,那么该怎么解决这个问题呢?最简单的方法便是将这些多信息文本转换为纯文本。 多信息文本转换为纯文本的方法: 1. 运行文本编辑应用(应用程序文件夹中),...
标签: Java JAVA基础
一、前言 从一个网站上,看到一个“抓网页”的代码,觉得有点意思,但是没有提供源代码,于是,自己想写一个,其实代码比较简单的。 二、代码 <%@ page contentType="text/html;charset=gb2312"% <% String sCurrentLine; String sTotalString; sCurrentLine=""; sTotalString=""; java.io.InputStream l_urlStream;...

经验教程

538

收藏

13
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部