1)TF-IDF在特征选择时的误区。

TF-IDF(term frequency–inverse document frequency)是一种用于信息检索与数据挖掘的常用加权技术。TF意思是词频(Term Frequency),IDF意思是逆文本频率指数(Inverse Document Frequency)。TF-IDF是一种统计方法,用以评估一字词对于一个文件集或一个语料库中的其中一份文件的重要程度。字词的重要性随着它在文件中出现的次数成正比增加,但同时会随着它在语料库中出现的频率成反比下降。TF-IDF加权的各种形式常被搜索引擎应用,作为文件与用户查询之间相关程度的度量或评级。除了TF-IDF以外,因特网上的搜索引擎还会使用基于链接分析的评级方法,以确定文件在搜寻结果中出现的顺序。

TF-IDF用于向量空间模型,进行文档相似度计算是相当有效的。但在文本分类中单纯使用TF-IDF来判断一个特征是否有区分度是不够的

它仅仅综合考虑了该词在文档中的重要程度和文档区分度。

它没有考虑特征词在类间的分布。特征选择所选择的特征应该在某类出现多,而其它类出现少,即考察各类的文档频率的差异。如果一个特征词,在各个类间分布比较均匀,这样的词对分类基本没有贡献;但是如果一个特征词比较集中的分布在某个类中,而在其它类中几乎不出现,这样的词却能够很好代表这个类的特征,而TF-IDF不能区分这两种情况。

它没有考虑特征词在类内部文档中的分布情况。在类内部的文档中,如果特征词均匀分布在其中,则这个特征词能够很好的代表这个类的特征,如果只在几篇文档中出现,而在此类的其它文档中不出现,显然这样的特征词不能够代表这个类的特征。

2)特征选择方法综述。

文本中能观察到的量其实只有两个:词频和文档频率,所有的方法一律以这两个量为计算基础。

针对英文纯文本的实验结果表明:作为特征选择方法时,卡方检验和信息增益的效果最佳(相同的分类算法,使用不同的特征选择算法来得到比较结果);文档频率方法(直接依据文档频率大小排序的方法)的性能同前两者大体相当,术语强度方法性能一般;互信息方法的性能最差。

3)信息增益。

信息增益(Kullback–Leibler divergence)又称information divergence,information gain,relative entropy 或者KLIC。

在概率论和信息论中,信息增益是非对称的,用以度量两种概率分布P和Q的差异。信息增益描述了当使用Q进行编码时,再使用P进行编码的差异。通常P代表样本或观察值的分布,也有可能是精确计算的理论分布。Q代表一种理论,模型,描述或者对P的近似。

尽管信息增益通常被直观地作为是一种度量或距离,但事实上信息增益并不是。就比如信息增益不是对称的,从P到Q的信息增益通常不等于从Q到P的信息增益。信息增益是f增益(f-divergences)的一种特殊情况。在1951年由Solomon Kullback 和Richard Leibler首先提出作为两个分布的直接增益(directed divergence)。它与微积分中的增益不同,但可以从Bregman增益(Bregman divergence)推导得到。

在信息增益中,衡量标准是看特征能够为分类系统带来多少信息,带来的信息越多,该特征越重要。对一个特征而言,系统有它和没它时信息量将发生变化,而前后信息量的差值就是这个特征给系统带来的信息量。所谓信息量,就是熵。

假如有变量X,其可能的取值有n种,每一种取到的概率为Pi,那么X的熵就定义为

熵公式 [1]

也就是说X可能的变化越多,X所携带的信息量越大,熵也就越大。对于文本分类或聚类而言,就是说文档属于哪个类别的变化越多,类别的信息量就越大。所以特征T给聚类C或分类C带来的信息增益为IG(T)=H(C)-H(C|T)。

H(C|T)包含两种情况:一种是特征T出现,标记为t,一种是特征T不出现,标记为t'。所以

H(C|T)=P(t)H(C|t)+P(t')H(C|t‘),再由熵的计算公式便可推得特征与类别的信息增益公式。

在文本分类中,特征词t的取值只有t(代表t出现)和(代表t不出现)。那么

最后,信息增益

但信息增益最大的问题还在于它只能考察特征对整个系统的贡献,而不能具体到某个类别上,这就使得它只适合用来做所谓“全局”的特征选择(指所有的类都使用相同的特征集合),而无法做“本地”的特征选择(每个类别有自己的特征集合,因为有的词,对这个类别很有区分度,对另一个类别则无足轻重)。

实现方法:

1  统计正负分类的文档数:N1、N2。

2  统计每个词的正文档出现频率(A)、负文档出现频率(B)、正文档不出现频率(C)、负文档不出现频率(D)。

3  计算信息熵

4  计算每个词的信息增益


5  将每个词按信息增益值从大到小排序,选取前k个词作为特征,k即特征维数。

4)卡方检测,CHI-Square test。

卡方检验最基本的思想就是通过观察实际值与理论值的偏差来确定理论的正确与否。具体做的时候常常先假设两个变量确实是独立的(“原假设”),然后观察实际值(观察值)与理论值(这个理论值是指“如果两者确实独立”的情况下应该有的值)的偏差程度,如果偏差足够小,我们就认为误差是很自然的样本误差,是测量手段不够精确导致或者偶然发生的,两者确确实实是独立的,此时就接受原假设;如果偏差大到一定程度,使得这样的误差不太可能是偶然产生或者测量不精确所致,我们就认为两者实际上是相关的,即否定原假设,而接受备择假设。

理论值为E,实际值为x,偏差程度的计算公式为:

这个式子就是开方检验使用的差值衡量公式。当提供了数个样本的观察值x1,x2,……xi,……xn之后,代入到式中就可以求得卡方值,用这个值与事先设定的阈值比较,如果大于阈值(即偏差很大),就认为原假设不成立,反之则认为原假设成立。

在文本分类的特征选择阶段,一般使用“词t与类别c不相关”来做原假设,计算出的开方值越大,说明对原假设的偏离越大,我们越倾向于认为原假设的反面情况是正确的。选择的过程为每个词计算它与类别c的开方值,从大到小排个序(此时开方值越大越相关),取前k个就可以。

例子:

通过计算各个特征的卡方值,进行排序后得到。

步骤如下: 1. 假设该特征与目标特征无关。 2. 计算卡方值,若卡方值较小,则相关性较小; 若较大,则相关性较大。

每个特征的卡方值计算应如下:

X^2 = ∑ ((YA - YB)^ 2 / YB)

其中,YA是每个样本中,YA的实际值,而YB为理想值,即假设无关成立时,理想的值。

由于假设该特征与目标特征无关,则应当在该特征的范围上,目标特征值均匀分布。

例如:

假设X 有三种分类,XA,XB,XC. Y 有两种分类, Y1,Y2

则对于卡方值计算有

  Y1 Y2 合计
XA a b a+b
XB c d c+d
XC e f e+f
合计 a+c+e b+d+f  

由于X属性与Y属性无关, 则有, (a+b) * (a+c+e) / (a+b+c+d+e+f) 为 X属性值为XA时, Y属性值为Y1的理想个数。

其中, (a+c+e)/ (a+b+c+d+e+f) 为全局中, Y1的比例。 由于假设X与Y无关,则XA中Y1与Y2的比例应该也为全局比例。

以这种思想计算所有理想值,并分别做上述公式的计算。

X^2 = (a- a1)^2 / a1 + (b - b1) ^2 / b1 + ....+ (f - f1) ^2 / f1

(其中,后面均为上面思想计算出的每个格子的理想值)

在weka中,有专门的函数 ChiSquaredAttributeEval 进行卡方检验。

卡方检验的缺点是:它只统计文档是否出现词,而不管出现了几次。这会使得他对低频词有所偏袒(因为它夸大了低频词的作用)。甚至会出现有些情况,一个词在一类文章的每篇文档中都只出现了一次,其开方值却大过了在该类文章99%的文档中出现了10次的词,其实后面的词才是更具代表性的,但只因为它出现的文档数比前面的词少了“1”,特征选择的时候就可能筛掉后面的词而保留了前者。这就是开方检验著名的“低频词缺陷”。因此开方检验也经常同其他因素如词频综合考虑来扬长避短。

实现方法:

1  统计样本集中文档总数(N)。

2  统计每个词的正文档出现频率(A)、负文档出现频率(B)、正文档不出现频率(C)、负文档不出现频率(D)。

3 计算每个词的卡方值,公式如下:

4  将每个词按卡方值从大到小排序,选取前k个词作为特征,k即特征维数。

参考链接:https://blog.csdn.net/enter89/article/details/52538121

https://blog.csdn.net/YoYoDelphine/article/details/52149138

特征选择方法之CHI、IG、TF-IDF相关推荐

  1. 【文本分类】混合CHI和MI的改进文本特征选择方法

    摘要:改进CHI算法.改进MI算法,结合改进CHI+改进MI,应用于文本的特征选择,提高了精度. 参考文献:[1]王振,邱晓晖.混合CHI和MI的改进文本特征选择方法[J].计算机技术与发展,2018 ...

  2. 文本特征抽取的向量空间模型(VSM)和TF/IDF方法

    文本特征抽取 两组小说,一组是爱情的,另一组是科幻的.我们能否用支持向量机训练一个模型,用来识别小说类型呢? 这个并不容易.因为支持向量机这类机器学习算法只能接受数学里面的向量作为输入.如果用它来做文 ...

  3. 机器学习过程中的数据预处理和特征选择方法

    1.数据清洗 数据清洗(data cleaning)是在机器学习过程中一个不可缺少的环节,其数据的清洗结果直接关系到模型效果以及最终的结论.在实际的工作中,数据清洗通常占开发过程的50%-80%左右的 ...

  4. 文本分类-特征选择方法

    文本分类-特征选择方法 一.概念 特征词选择和特征词权重  1.特征词选择:特征词选择是为了降低文本表示的维度,而特征词权重是为了表示文本表示中每一个特征项的重要程度. 常见的且基础的文本特征选择的算 ...

  5. 特征选择方法之信息增益

    前文提到过,除了开方检验(CHI)以外,信息增益(IG,Information Gain)也是非常有效的特征选择方法.但凡是特征选择,总是在将特征的重要程度量化之后再进行选择,而怎样量化特征的重要性, ...

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

    前文提到过,除了开方检验(CHI)以外,信息增益(IG,Information Gain)也是很有效的特征选择方法.但凡是特征选择,总是在将特征的重要程度量化之后再进行选择,而如何量化特征的重要性,就 ...

  7. 关键词提取算法—TF/IDF算法

    关键词提取算法一般可分为有监督学习和无监督学习两类. 有监督的关键词提取方法可以通过分类的方式进行,通过构建一个较为完善的词表,然后判断每个文档与词表中的每个词的匹配程度,以类似打标签的方式,达到关键 ...

  8. tf/idf_Neo4j:带密码的TF / IDF(和变体)

    tf/idf 几周前,我写了一篇博客文章,介绍了如何使用scikit-learn在HIMYM成绩单上运行TF / IDF,以按情节找到最重要的短语,然后我很好奇在Neo4j中很难做到. 我首先将Wik ...

  9. Neo4j:带密码的TF / IDF(和变体)

    几周前,我写了一篇博客文章,介绍了如何使用scikit-learn在HIMYM成绩单上运行TF / IDF,以按情节找到最重要的短语,然后我很好奇在Neo4j中很难做到. 我首先将Wikipedia的 ...

最新文章

  1. seaborn可视化条形图并按照降序排序条形图进行可视化Sort Bars in Barplot in Descending Order in Python
  2. 查看ocx控件CLSID的方法
  3. c++链表形参丢失_LeetCode 例题精讲 | 01 反转链表:如何轻松重构链表
  4. python元素定位id和name_Python+Selenium自动化软件测试实战:Xpath,class,id,name定位和Iframe框架跳转...
  5. 【3分钟掌握】什么是DNS解析
  6. 英文期刊催稿信模板_手把手教你写投稿信,另附查尔斯沃思高质量模板
  7. 如何为属性是disabled的表单绑定js事件
  8. KITTI数据集Raw Data与Ground Truth序列00-10的对应关系,以及对应的标定参数
  9. 图片怎么转换成文字?几个好用的方法快来查阅
  10. BC20 ONENET平台(二) 上行数据到ONENET
  11. 汽车标志你认识多少?爱车族一定要了解哦!
  12. 案例详解:理解Python中的“解析式”
  13. [编程题]字符串分隔
  14. python核心编程 第3版_Python核心编程(第3版)PDF高清晰完整中文版
  15. 解决THINKBOOK 14安装windows系统不识别固态硬盘的问题
  16. 【OCP|052】OCP最新题库解析(052)--小麦苗解答版
  17. 数据库中的数据完整性约束
  18. 我的世界服务器物品怎么上锁,我的世界教你如何将箱子上锁方法解答
  19. SparkSQL 创建 DataFrame 的方式
  20. 2021年11月29日课二

热门文章

  1. [C++ Primer Plus]输入、输出和文件
  2. 九齐051D写的433遥控器
  3. Q4营收超预期但亏损加大 OKTA还能吸引投资者继续“上车”吗?
  4. 某企业产品成本核算中直接材料凭证流
  5. POJ3744 Scout YYF 题解
  6. 多家P2P网贷平台因DDOS攻击而倒闭,P2P平台该怎么应对?
  7. 算法-阶乘尾数零的个数
  8. windows快速关机
  9. 【生活】|(转)成都天府通卡的用法
  10. sql修改日期不改变时间