卡方检测
https://blog.csdn.net/John_xyz/article/details/82494707
在一个文本分类系统中,特征数量可能达到上百万维,如何有效的进行特征选择是非常重要的。如果一个词(输入变量)与一个类别(分类结果)相互独立,那么该词对没有任何的表征作用。
我们一般用词与类别不相关来做原假设,计算出的卡方值越大,说明对原假设的偏离越大。选择的过程也变成了为每个词计算它与类别的卡方值,从大到小排个序(此时开方值越大越相关),取前k个就可以。
举个简单例子。比如说现在有N篇文档,其中有M篇是关于体育的,我们想考察一个词“篮球”与类别“体育”之间的相关性。原假设,“篮球”与“体育”类不相关
- 包含“篮球”且属于“体育”类别的文档数,命名为A
- 包含“篮球”但不属于“体育”类别的文档数,命名为B
- 不包含“篮球”但却属于“体育”类别的文档数,命名为C
- 既不包含“篮球”也不属于“体育”类别的文档数,命名为D
特征选择 | 属于”体育” | 不属于”体育” | 总计 |
---|---|---|---|
包含篮球 | A | B | A+B |
不包含篮球 | C | D | C+D |
总数 | A+C | B+D | N |
卡方检验就是统计样本的实际观测值与理论推断值之间的偏离程度,如果卡方值越大,二者偏差程度越大;反之,二者偏差越小;若两个值完全相等时,卡方值就为0,表明理论值完全符合。
但是里面也有两种计算方式,一种是平均,一种是取max。取平均就是求出一个特征与每个类别的相关度,然后求所有的平均,作为该个特征的分类作用的衡量。取max就是求出一个特征与每个类别的相关度,然后取出最大的一个值,就作为该个特征的分类作用的衡量。这样的好处也显而易见,总能把跟某个类别相关的词都取出来,确保每个类别都有一些特征词被保留下来。而平均的操作就会让这个作用弱化。
image.png怎么判断要用卡方还是Fisher?
统计学教科书上通常会说:如果总样本量大于40,最小理论频数大于5,就应该用卡方检验;如果总样本量大于40,最小理论频数介于1和5之间,就应该使用卡方检验的校正公式;如果总样本量小于40,或(注意这个或字)最小理论频数小于1,就应该用Fisher确切概率法。在本案例中,总样本量为56,最小理论频数为:27×20/56=9.64,明显是大于5的,因此应采用卡方检验。
这里穿插一段关于最小理论频数的计算方法,实际上就是最小的横排合计数据和最小的纵列合计数据的乘积再除以总样本量。在本案例中,横排合计数据只有两个(29和27),纵列合计数据也只有两个(36和20),总样本量是56,因此最小理论频数就是27×20/56=9.64。在多行多列表格中寻找最小理论频数的方法与此类似。