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

因为我常常查看,因此直接转载过来。原文地址:http://www.blogjava.net/zhenandaci/archive/2008/08/31/225966.htmlhtml

前文提到过,除了分类算法之外,为分类文本做处理的特征提取算法也对最终效果有巨大影响,而特征提取算法又分为特征选择和特征抽取两大类,其中特征选择算法有互信息,文档频率,信息增益,开方检验等等十数种,此次先介绍特征选择算法中效果比较好的开方检验方法。java

你们应该还记得,开方检验实际上是数理统计中一种经常使用的检验两个变量独立性的方法。(什么?你是文史类专业的学生,没有学过数理统计?那你作什么文本分类?在这捣什么乱?)算法

开方检验最基本的思想就是经过观察实际值与理论值的误差来肯定理论的正确与否。具体作的时候经常先假设两个变量确实是独立的(行话就叫作“原假设”),而后观察实际值(也能够叫作观察值)与理论值(这个理论值是指“若是二者确实独立”的状况下应该有的值)的误差程度,若是误差足够小,咱们就认为偏差是很天然的样本偏差,是测量手段不够精确致使或者偶然发生的,二者确确实实是独立的,此时就接受原假设;若是误差大到必定程度,使得这样的偏差不太多是偶然产生或者测量不精确所致,咱们就认为二者其实是相关的,即否认原假设,而接受备择假设性能

那么用什么来衡量误差程度呢?假设理论值为E(这也是数学指望的符号哦),实际值为x,若是仅仅使用全部样本的观察值与理论值的差值x-E之和spa

来衡量,单个的观察值还好说,当有多个观察值x1x2x3的时候,极可能x1-Ex2-Ex3-E的值有正有负,于是互相抵消,使得最终的结果看上好像误差为0,但实际上每一个都有误差,并且都还不小!此时很直接的想法即是使用方差代替均值,这样就解决了正负抵消的问题,即便用.net

        

 

这时又引来了新的问题,对于500的均值来讲,相差5实际上是很小的(相差1%),而对20的均值来讲,5至关于25%的差别,这是使用方差也没法体现的。所以应该考虑改进上面的式子,让均值的大小不影响咱们对差别程度的判断3d

                            式(1htm

上面这个式子已经至关好了。实际上这个式子就是开方检验使用的差值衡量公式。当提供了数个样本的观察值x1x2,……xi ,……xn以后,代入到式(1)中就能够求得开方值,用这个值与事先设定的阈值比较,若是大于阈值(即误差很大),就认为原假设不成立,反之则认为原假设成立。blog

在文本分类问题的特征选择阶段,咱们主要关心一个词t(一个随机变量)与一个类别c(另外一个随机变量)之间是否相互独立?若是独立,就能够说词t对类别c彻底没有表征做用,即咱们根本没法根据t出现与否来判断一篇文档是否属于c这个分类。但与最普通的开方检验不一样,咱们不须要设定阈值,由于很难说词t和类别c关联到什么程度才算是有表征做用,咱们只想借用这个方法来选出一些最最相关的便可。排序

此时咱们仍然须要明白对特征选择来讲原假设是什么,由于计算出的开方值越大,说明对原假设的偏离越大,咱们越倾向于认为原假设的反面状况是正确的。咱们能不能把原假设定为“词t与类别c相关“?原则上说固然能够,这也是一个健全的民主主义社会赋予每一个公民的权利(笑),但此时你会发现根本不知道此时的理论值该是多少!你会把本身绕进死胡同。因此咱们通常都使用”词t与类别c不相关“来作原假设。选择的过程也变成了为每一个词计算它与类别c的开方值,从大到小排个序(此时开方值越大越相关),取前k个就能够(k值能够根据本身的须要选,这也是一个健全的民主主义社会赋予每一个公民的权利)。

好,原理有了,该来个例子说说到底怎么算了。

好比说如今有N篇文档,其中有M篇是关于体育的,咱们想考察一个词“篮球”与类别“体育”之间的相关性(任谁都看得出来二者很相关,但很遗憾,咱们是智慧生物,计算机不是,它一点也看不出来,想让它认识到这一点,只能让它算算看)。咱们有四个观察值可使用:

1.         包含“篮球”且属于“体育”类别的文档数,命名为A

2.         包含“篮球”但属于“体育”类别的文档数,命名为B

3.         包含“篮球”但却属于“体育”类别的文档数,命名为C

4.         包含“篮球”也属于“体育”类别的文档数,命名为D

用下面的表格更清晰:

特征选择

1.属于“体育”

2.不属于“体育”

 

1.包含“篮球”

A

B

A+B

2.不包含“篮球”

C

D

C+D

 

A+C

B+D

     N

若是有些特色你没看出来,那我说一说,首先,A+B+C+D=N(这,这不废话嘛)。其次,A+C的意思其实就是说“属于体育类的文章数量”,所以,它就等于M,同时,B+D就等于N-M

好,那么理论值是什么呢?以包含“篮球”且属于“体育”类别的文档数为例。若是原假设是成立的,即“篮球”和体育类文章没什么关联性,那么在全部的文章中,“篮球”这个词都应该是等几率出现,而无论文章是否是体育类的。这个几率具体是多少,咱们并不知道,但他应该体如今观察结果中(就比如抛硬币的几率是二分之一,能够经过观察屡次抛的结果来大体肯定),所以咱们能够说这个几率接近

(由于A+B是包含“篮球”的文章数,除以总文档数就是“篮球”出现的几率,固然,这里认为在一篇文章中出现便可,而无论出现了几回)而属于体育类的文章数为A+C,在这些个文档中,应该有

篇包含“篮球”这个词(数量乘以几率嘛)。

但实际有多少呢?考考你(读者:切,固然是A啦,表格里写着嘛……)。

此时对这种状况的差值就得出了(套用式(1)的公式),应该是

一样,咱们还能够计算剩下三种状况的差值D12D21D22,聪明的读者必定能本身算出来(读者:切,明明是本身懒得写了……)。有了全部观察值的差值,就能够计算“篮球”与“体育”类文章的开方值

D11D12D21D22的值分别代入并化简,能够获得

     

     

t与类别c的开方值更通常的形式能够写成

            式(2

接下来咱们就能够计算其余词如“排球”,“产品”,“银行”等等与体育类别的开方值,而后根据大小来排序,选择咱们须要的最大的数个词汇做为特征项就能够了。

实际上式(2)还能够进一步化简,注意若是给定了一个文档集合(例如咱们的训练集)和一个类别,则NMN-M(即A+CB+D)对同一类别文档中的全部词来讲都是同样的,而咱们只关心一堆词对某个类别的开方值的大小顺序,而并不关心具体的值,所以把它们从式(2)中去掉是彻底能够的,故实际计算的时候咱们都使用

             式(3

好啦,并不高深对不对?

针对英文纯文本的实验结果代表:做为特征选择方法时,开方检验和信息增益的效果最佳(相同的分类算法,使用不一样的特征选择算法来获得比较结果);文档频率方法的性能同前二者大致至关,术语强度方法性能通常;互信息方法的性能最差(文献[17])。

但开方检验也并不是就十全十美了。回头想一想AB的值是怎么得出来的,它统计文档中是否出现词t,却无论t在该文档中出现了几回,这会使得他对低频词有所偏袒(由于它夸大了低频词的做用)。甚至会出现有些状况,一个词在一类文章的每篇文档中都只出现了一次,其开方值却大过了在该类文章99%的文档中出现了10次的词,其实后面的词才是更具表明性的,但只由于它出现的文档数比前面的词少了“1”,特征选择的时候就可能筛掉后面的词而保留了前者。这就是开方检验著名的“低频词缺陷“。所以开方检验也常常同其余因素如词频综合考虑来扬长避短。

好啦,关于开方检验先说这么多,有机会还将介绍其余的特征选择算法。

附:给精通统计学的同窗多说几句,式(1)其实是对连续型的随机变量的差值计算公式,而咱们这里统计的“文档数量“显然是离散的数值(全是整数),所以真正在统计学中计算的时候,是有修正过程的,但这种修正仍然是只影响具体的开方值,而不影响大小的顺序,故文本分类中不作这种修正。

相关文章
相关标签/搜索