文本分类之特征简约算法说明

http://blog.csdn.net/aalbertini/archive/2010/07/20/5749883.aspx

 

用数值衡量某个特征的重要性。

 

1 df: 用df衡量重要性。 df就是包含该词的文档的个数 除以 文档总数

 

2 ig: infomation gain

 

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

clip_image002

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

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

clip_image002[4]

 

我们用T代表特征,而用t代表T出现,那么:

clip_image008

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

clip_image012

另一半就可以展开为:

clip_image014

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

clip_image016

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

代码中的 double p = 1 + pt / total * pct + (1 - pt / total) * pnotct;

其中

1表示H(C)。因为每个类别都是一样大,所以H(C) = 2。。。???

pt/total 表示P(t);特征t出线的概率;

(1 - pt/total)表示P(t');特征t不出现的概率

http://www.360doc.com/content/10/0520/14/1472642_28554810.shtml

 

3 mi, mutual infomation

互信息衡量的是某个词和类别之间的统计独立关系,某个词t和某个类别Ci传统的互信息定义如下:

  互信息是计算语言学模型分析的常用方法,它度量两个对象之间的相互性。在过滤问题中用于度量特征对于主题的区分度。互信息的定义与交叉嫡近似。互信息本来是信息论中的一个概念,用于表示信息之间的关系, 是两个随机变量统计相关性的测度,使用互信息理论进行特征抽取是基于如下假设:在某个特定类别出现频率高,但在其他类别出现频率比较低的词条与该类的互信息比较大。通常用互信息作为特征词和类别之问的测度,如果特征词属于该类的话,它们的互信息量最大。由于该方法不需要对特征词和类别之问关系的性质作任何假设,因此非常适合于文本分类的特征和类别的配准工作。

double itc = Math.log(tf / one / (pt / total * one / total));
     // double itc = Math.log(tf * total / one * pt);
     avgItc += itc * (one / total);

其中,

pt表示P(t),包含该特征的文档个数

tf/one表示类中包含该特征的文档个数, pt/total表示特征出线的概率, one/total表示类的大小

 

4 chi,

 

5 sd, standard deviation.  st = Math.sqrt(st / (tfs.length - 1) );  其中为什么要减去1? 似乎和标准差的定义不符合。。

 

6 是df * idf?  应该是tf * idf吧?

 

7 df * idf * sd?  同上, 应该是tf * idf * sd? 而且sd的求法有问题?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值