在Matlab中使用互信息进行特征选择


10

我正在尝试将互信息的思想应用于特征选择,如这些讲义(第5页)中所述。

我的平台是Matlab。我从经验数据计算互信息时发现的一个问题是,数字总是向上偏移。我在Matlab Central上找到了大约3〜4个不同的文件来计算MI,当我输入独立的随机变量时,它们都给出了很大的数字(例如> 0.4)。

我不是专家,但是问题似乎是,如果仅使用联合和边际密度来计算MI,则会在过程中引入偏差,因为MI从定义上说是积极的。是否有人对如何准确估计互信息有实用建议?

一个相关的问题是,在实践中,人们实际上如何使用MI选择功能?对我而言,如何得出一个阈值并不明显,因为理论上MI是无界的。还是人们只是按MI对要素进行排名并采用前k个要素?


没有人对此主题感兴趣?

您对此有答案吗?

抱歉不行。您是否也遇到相同的问题?

Answers:


3

这是有限的采样偏差的问题。

密度的小样本估计值比较嘈杂,这种变化会引起变量之间的虚假相关,从而增加估计信息值。

在离散情况下,这是一个经过充分研究的问题。从完全的贝叶斯(NSB)到简单的校正,有很多校正方法。最基本的(Miller-Madow)是从该值中减去。这是两个隐式模型之间的自由度差异(完全联合多项式与独立边际的乘积)-实际上,在有足够采样的情况下,是独立性的似然比检验(G检验),即分配有(R1)(S1)/2Nln22Nln(2)Iχ2(R1)(S1)自由假设下的自由度。在有限的试验中,甚至很难可靠地估计R和S-有效的校正方法是使用贝叶斯计数程序来估计R和S(Panzeri-Treves或PT校正)。

在Matlab中实现这些技术的一些软件包包括infotoolboxSpike Train Analysis Toolkit

对于连续情况,基于最近邻居距离的估计量可以减少问题。


1

我使用了KL散度,并使用适当的样本量为分布具有相等概率的基因座获取0值。

我建议您用KL散度重新定义您的MI。


1

您应该对输入变量(特征)选择使用部分互信息算法。它基于MI概念和概率密度估计。例如在:

  1. 基于内核的PMI:(+)具有停止标准(Akaike Information Criteria)(-)复杂度较高
  2. 基于kNN的PMI:(-)没有停止标准(+)复杂度较低

我使用PMI减少了神经网络输入的数量,因为它们增加了复杂性并引入了其他问题。您可以在“人工神经网络的输入变量选择方法回顾”一文中找到输入变量选择(IVS)算法的完整概述。您可以将IVS用于SVM和其他。为了简短起见,请使用PMI。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.