概述
在做文本挖掘,特别是有监督的学习时,常常需要从文本中提取特征,提取出对学习有价值的分类,而不是把所有的词都用上,因此一些词对分类的作用不大,比如“的、是、在、了”等停用词。这里介绍两种常用的特征选择方法:
互信息
一个常用的方法是计算文档中的词项t与文档类别c的互信息MI,MI度量的是词的存在与否给类别c带来的信息量,互信息的基本定义如下:
应用到文本特征选择:
U、C都是二值随机变量,当文档包含词项t时,U的取值为 et=1 ,否则 et=0 ;当文档属于类别c时,C的取值 ec=1 ,否则 ec=0 ,用最大似然估计时,上面的概率值都是通过统计文档中词项和类别的数目阿里计算的。于是实际计算公式如下:
其中 Nxy 表示 x=et 和 y=ec 情况下对应的文档数目,比如 N10 表示包含词项t(此时 et=1 )但不属于类别c(此时 ec=0 )的; N1.=N10+N11 表示所有包含词项t的文档数目。 N.1=N11+N01 表示所有属于类c的文档数目, N=N00+N01+N10+N11 表示所有文档数目。
举例:路透社的语料库Retuters-RCV1的一个类别poultry及词项export。类别和词项的四种组合的文档数如下:
计算类别poultry和词export之间的类别的互信息为:
我们可以对每一个类计算各个词项与其的互信息,并选取值最大的k个词项,当然有可能两个类会选取相同的特征词,去重一下即可。
互信息度量的是词项是否被类别包含所带来的信息量,如果某个词项均匀的分布在各个类别,那么 I(U;C)=0 ,当某词项总是出现在当前类别,而在其他类别中很少出现时, I(U;C) 就会比较大。使用互信息能够保留具有信息含量的词项的同时,去掉那些没有信息含量的词项,从而提高正确率。
X2 统计量
在统计学中, X2 统计量经常用来检测两个事件的独立性。在特征选择中,两个事件分别指词项的出现与类别的出现,计算公式如下:
依然是前面的类别poultry及词项export的例子,我们有
其他的类似计算,得到:
查卡方的分布表,置信度为0.999的卡方临界值是10.83,也就是当卡方值 X2(D,t,c)>10.83 时,我们有99.9%的把握,t与c不独立,这里284显然大于10.83,因此我们认为poultry与export不独立,也就是export对poultry是一个强特征。同样我们计算所有词的卡方值,取值最大的前k个词项作为特征词。
卡方是基于显著统计性来选择特征的,因此他会比MI选出更多的罕见词项,而这些词项对分类并不靠谱。
虽然卡方和互信息的出发点不同,但它们的准确性却相差不多,因为大部分文本分类问题中,只有很少的强特征,大部分都是弱特征。只要所有的强特征和很多弱特征被选出,那么分类的准确率就不会低。
另外上面介绍的两种特征选择主要用于文本的分类等用监督学习,而不适宜聚类等无监督学习,因为聚类我们不知道每篇文档属于的类别,也就无从计算互信息和卡方值,这时一般使用TF-IDF作为特征词的选取方法,关于TF-IDF可以参看阮一峰的日志,这里不做总结。
本文内容主要来自:《Introduction to Information Retrieval》
原文:http://www.cnblogs.com/fengfenggirl/p/text_feature_selection.html
最后
以上就是秀丽鼠标为你收集整理的文本特征选择-互信息的全部内容,希望文章能够帮你解决文本特征选择-互信息所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复