特征选择:信息增益 VS 互信息

机器算法验证 分类 特征选择 信息论 互信息
2022-04-10 01:28:03

设置:具有离散名义特征的多类分类问题。

有许多参考文献提到使用IG(信息增益)和MI(互信息)作为基于过滤器的特征选择的特征相关性的度量。但是,从信息论的角度来看,我并不完全清楚这两者之间有什么区别(如果有的话):

IG(X,Y) ?=? MI(X,Y) = H(X)-H(X|Y) = H(Y)-H(Y|X) = H(X) + H(Y) - H(X,Y) = ...

笔记:

  • 有很多方法MI可以在 Matlab、R 中甚至通过玩具示例手动进行估计。但是,我找不到提及这两种措施以及它们之间差异的单一参考资料。

  • 我对离散特征的计算(和理解)MI返回预期结果并匹配现有的MIf-ns(在 R,Matlab 中)。但是,Weka 有一个 fn InfoGainAttributeEvalhttp ://weka.sourceforge.net/doc.dev/weka/attributeSelection/InfoGainAttributeEval.html ,它产生IG的度量不等于MI相同数据。

  • SE论坛中有一些类似的问题,都表明IG和MI等价(例如信息增益,互信息和相关措施)。在那种情况下 - 在 Weka 中如何计算 IG 以及为什么它与 MI 不匹配?

  • Weka 的 IG 可从http://featureselection.asu.edu/documentation/infogain.htm在特征选择的上下文中获得

回答:

请参阅下面接受的答案。在信息论的背景下,没有迹象表明它们具有不同的含义——它们是相同的MI度量IG

关于 WEKA 和不同的结果。我使用了特征选择包,它总是假设连续属性,因此在计算信息增益之前应用了 Weka 的离散化。直接从 WEKA 运行 IG 而不进行离散化,产生与 MI 等效的结果。

1个回答

它们完全相同。

如果是具有个不同值的标称特征,而个类别的目标类别。XkCm

MI=i=1kj=1mP(xi,cj)logP(xi,cj)P(xi)P(cj)=i=1kj=1mP(xi,cj)logP(cj)+i=1kj=1mP(cj|xi)P(xi)logP(cj|xi)=j=1mP(cj)logP(cj)+i=1kP(xi)j=1mP(cj|xi)logP(cj|xi)=H(C)H(C|X)=IG

这是命名不一致的情况。你可能也想看看这个问题