4

我使用以下代码来计算情绪分析中特征选择的互信息和卡方值。

MI = (N11/N)*math.log((N*N11)/((N11+N10)*(N11+N01)),2) + (N01/N)*math.log((N*N01)/((N01+N00)*(N11+N01)),2) + (N10/N)*math.log((N*N10)/((N10+N11)*(N00+N10)),2) + (N00/N)*math.log((N*N00)/((N10+N00)*(N01+N00)),2)

其中 N11,N01,N10 和 N00 是我的数据集中两个特征的观察频率。

注意:我正在尝试计算 2 个特征之间的互信息和卡方值,而不是特定特征和类之间的互信息。我这样做是为了知道这两个功能是否以任何方式相关。

我使用的卡方公式是:

E00 = N*((N00+N10)/N)*((N00+N01)/N)
E01 = N*((N01+N11)/N)*((N01+N00)/N)
E10 = N*((N10+N11)/N)*((N10+N00)/N)
E11 = N*((N11+N10)/N)*((N11+N01)/N)

chi = ((N11-E11)**2)/E11 + ((N00-E00)**2)/E00 + ((N01-E01)**2)/E01 + ((N10-E10)**2)/E10  

其中 E00,E01,E10,E11 是预期频率。

根据互信息的定义,低值应该意味着一个特征没有给我关于另一个的信息,根据卡方的定义,卡方的低值意味着两个特征必须是独立的。

但是对于某些两个特征,我得到了 0.00416 的互信息分数和 4373.9 的卡方值。这对我来说没有意义,因为互信息分数表明这些特征并不密切相关,但卡方值似乎足够高,表明它们也不是独立的。我想我的解释有问题

我为观察到的频率得到的值是

N00 = 312412
N01 = 276116
N10 = 51120
N11 = 68846
4

3 回答 3

2

MI 和 Pearson 的大样本统计量在有关样本量的通常条件下是成正比的。这是众所周知的。这里给出了 S 证明。

Morris, AC (2002) “序列识别性能的信息论测量”。可以从这个页面下载。

https://sites.google.com/site/andrewcameronmorris/Home/publications

因此,除非您的计算中有错误,否则如果一个是高/低,另一个必须是高/低。

于 2014-01-26T12:56:30.830 回答
2

卡方独立性检验检查原始计数,而互信息分数仅检查边际和联合概率分布。因此,卡方还考虑了样本量。

如果 x 和 y 之间的依赖关系非常微妙,那么了解其中一个对于预测另一个并没有多大帮助。然而,随着数据集大小的增加,我们可以越来越确信存在某种关系。

于 2017-04-07T22:40:57.213 回答
0

您可以尝试https://github.com/ranmoshe/Inference - 它使用卡方计算 MI 和 p 值统计量。

它还知道计算每个特征的自由度,包括考虑一个条件组(其中一个特征的自由度在不同的值之间可能不同)

于 2018-12-27T09:40:07.530 回答