我使用以下代码来计算情感分析中特征选择的互信息和卡方值。
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 是我的数据集中两个特征的观察频率。
注意:我正在尝试计算两个特征之间的互信息和卡方值,而不是特定特征和类之间的互信息。我这样做是为了知道这两个功能是否以任何方式相关。
我使用的卡方公式是:
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
最佳答案
在有关样本量的通常条件下,MI 和 Pearson 大样本统计量成正比。这是众所周知的。这里给出了S证明。
Morris, A.C. (2002)“序列识别性能的信息理论测量”。 可以从此页面下载。
https://sites.google.com/site/andrewcameronmorris/Home/publications
因此,除非您的计算有任何错误,否则如果一个是高/低,另一个一定是高/低。
关于feature-selection - 互信息和卡方关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13789660/