专栏名称: 大数据挖掘DT数据分析
实战数据资源提供。数据实力派社区,手把手带你玩各种数据分析,涵盖数据分析工具使用,数据挖掘算法原理与案例,机器学习,R语言,Python编程,爬虫。如需发布广告请联系: hai299014
51好读  ›  专栏  ›  大数据挖掘DT数据分析

文本挖掘之特征选择(python 实现)

大数据挖掘DT数据分析  · 公众号  · 大数据  · 2017-07-19 19:55

正文



数据挖掘入门与实战  公众号: datadw


机器学习算法的空间、时间复杂度依赖于输入数据的规模,维度规约(Dimensionality reduction)则是一种被用于降低输入数据维数的方法。维度规约可以分为两类:


  • 特征选择(feature selection),从原始的d维空间中,选择为我们提供信息最多的k个维(这k个维属于原始空间的子集)

  • 特征提取(feature extraction),将原始的d维空间映射到k维空间中(新的k维空间不输入原始空间的子集)

在文本挖掘与文本分类的有关问题中,常采用特征选择方法。原因是文本的特征一般都是单词(term),具有语义信息,使用特征选择找出的k维子集,仍然是单词作为特征,保留了语义信息,而特征提取则找k维新空间,将会丧失了语义信息。

对于一个语料而言,我们可以统计的信息包括文档频率和文档类比例,所有的特征选择方法均依赖于这两个统计量,目前,文本的特征选择方法主要有:DF, MI, IG, CHI,WLLR,WFO六种。

为了方便描述,我们首先一些概率上的定义:

p(t):一篇文档x包含特征词t的概率。

:文档x不属于C i 的概率。

p(C i |t):已知文档x的包括某个特征词t条件下,该文档属于C i 的概率

: 已知文档属于C i 条件下,该文档不包括特征词t的概率

类似的其他的一些概率如p(C i ), 等,有着类似的定义。

为了估计这些概率,我们需要通过统计训练样本的相关频率信息,如下表:

其中:

A ij : 包含特征词t i, 并且类别属于C j 的文档数量    B ij : 包含特征词t i, 并且类别属于不C j 的文档数量

C ij :不包含特征词t i, 并且类别属于C j 的文档数量 D ij :不包含特征词t i, 并且类别属于不C j 的文档数量

A ij + B ij : 包含特征词t i 的文档数量          C ij + D ij :不包含特征词t i 的文档数量

A ij + C ij :C j 类的文档数量数据             B ij + D ij :非C j 类的文档数量数据

A ij + B ij + C ij + D ij = N :语料中所有文档数量。

有了这些统计量,有关概率的估算就变得容易,如:

p(t i ) =     (A ij + B ij ) / N;    p(C j ) = (A ij +  C ij ) / N;

p(C j |t j ) = A ij / (A ij + B ij )

......类似的一些概率计算可以依照上表计算。

介绍了事情发展的前因,现在进入正题:常见的四种特征选择方法如何计算。

1)DF(Document Frequency)

DF:统计特征词出现的文档数量,用来衡量某个特征词的重要性,DF的定义如下:

DF的动机是,如果某些特征词在文档中经常出现,那么这个词就可能很重要。而对于在文档中出现很少(如仅在语料中出现1次)特征词,携带了很少的信息量,甚至是"噪声",这些特征词,对分类器学习影响也是很小。

DF特征选择方法属于无监督的学习算法(也有将其改成有监督的算法,但是大部分情况都作为无监督算法使用),仅考虑了频率因素而没有考虑类别因素,因此,DF算法的将会引入一些没有意义的词。如中文的"的"、"是", "个"等,常常具有很高的DF得分,但是,对分类并没有多大的意义。

2)MI(Mutual Information)

互信息法用于衡量特征词与文档类别直接的信息量,互信息法的定义如下:

继续推导MI的定义公式:

从上面的公式上看出:如果某个特征词的频率很低,那么互信息得分就会很大,因此互信息法倾向"低频"的特征词。相对的词频很高的词,得分就会变低,如果这词携带了很高的信息量,互信息法就会变得低效。

3)IG(Information Gain)

信息增益法,通过某个特征词的缺失与存在的两种情况下,语料中前后信息的增加,衡量某个特征词的重要性。

信息增益的定义如下:

依据IG的定义,每个特征词 t i IG 得分前面一部分: 计算值是一样,可以省略。因此,







请到「今天看啥」查看全文