feature-selection - 互信息和卡方关系

标签 feature-selection chi-squared

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

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、N​​01、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/

相关文章:

python-3.x - 如何从特征列表和权重系数列表中选择前 10 个特征(逻辑回归)?

python - Pandas:行和列总和的外积

machine-learning - 如何在 sklearn::LGBMClassifier() 中的 LightGBM 分类器的 feature_importances_ 中将 'gain' 设置为特征重要性度量

machine-learning - 同一组变量对于所有分类方法都会表现最好吗?

machine-learning - 使用卡方检验进行特征选择

r - R 中的 pwr.chisq.test 错误

python - 为什么我的多参数卡方会陷入错误循环?

python - 我们可以使用 python 为 chisquare 测试生成列联表吗?

python - 在 scipy 中找到卡方检验的自由度?

machine-learning - 特征重要性 - Bagging、scikit-learn