专栏首页CreateAMind浅析互信息与特征选择

浅析互信息与特征选择

转自: 业余机器学习与深度学习

基础知识


正文:

特征选择有很多方法,其中一种是基于互信息的。

那么什么是互信息呢?变量x与变量y之间的互信息,可以用来衡量已知变量x时变量y的不确定性减少的程度,同样的,也可以衡量已知变量y时变量x的不确定性减少的程度。

互信息是基于熵而得到的。什么是熵呢?一个随机变量的熵是用来衡量它的不确定性的。比如,对于变量y,熵的计算公式如下

当变量y是离散变量时,则累加即可,而当变量y是连续变量时,则需要通过积分方法来计算。其实,熵可以解释为表示变量y所需二进制位的平均值。

假设离散变量y的取值空间为Ω = {0,1},并且 P [y=1] = p, P [Y=0] = 1-p,则熵随p的变化曲线如下:

其中

容易看出,两件事发生的概率相等时,变量y的不确定性最大。

接下来看看条件熵。条件熵 H(y |x ) 用来衡量变量x给定时,变量y的不确定性。公式如下:

H(y | x) = H(y, x) − H(x)

如果变量y和变量x是相互独立的,即 H(y | x) = H(y)。 这种情况下,不论变量x是否已知,变量y的不确定性都一样。

既然已经了解了熵,下面来看下互信息。变量x和y之间的互信息即为:

I(y;x) = H(y) − H(y | x) = H(x) − H(x | y)

它是两个熵之间的差,即变量y的熵减去给定变量x时变量y的熵。互信息具有以下特性:

1. 如果x和y是相互独立的,则 I(y;x) = 0;

2. I(y;y) = H(y);

3. 互信息I(y;x)通常是非负的,并且小于 min(H(y), H(x))。

互信息可以识别出变量之间的非线性关系。比如变量x, y ,z满足以下条件时:

1 变量 x 服从均匀分布 [-1 1] 2 变量 y = x^2 + noise 3 变量 z 服从均匀分布 [-1 1]

4 变量 z 和 变量 x 相互独立。

互信息和相关系数的计算结果如下:

其中Correlation是相关系数。

注意到互信息公式是

I(x,y) = H(y) − H(y | x) = H(x) − H(x | y)

其中的x和y有可能是向量。针对这种情形如何计算互信息呢?首先来看几个概念。

关联度

上述定义给出了,给定x1时,x2相对y的关联度即为条件互信息。

冗余度

上述定义给出了两个变量互相冗余的定义。

上面定义给出了强相关的定义。强相关意味着这个变量在最优特征子集中通常是必须有的。

上面定义给出了弱相关的定义。弱相关性表明该特征不一定是必须的,但是在某些条件下可能是必须的。

如果某个特征既不是弱相关,又不是强相关,则该特征是没有必要的。

可以得到

进而可以得到

如果上面的交互项是正的,则这两个变量是互补的。如果变量是相互冗余的,则交互项是负值。

说了这么多,互信息跟特征选择到底什么关系呢?给定输出目标 y 和输入变量集合 X = {x1, . . . , xn} ,选择最佳的特征子集可以描述为下述优化问题:

上述问题可以用增量法来解决。即首先令 X = {xi}, i = 1, . . . , n,并且 XS 是当前已选变量构成的集合。添加变量 x∗ ∈ S − X 的过程可以有下面方法解决

这是一个最大依赖性(maximal dependency)问题,需要估计多变量的互信息。

最后介绍一种常用基于互信息的特征选择方法,即为mRMR(mimimum-Redundancy Maximum-Relevancy),最小冗余最大相关法,这种方法对应的特征选择策略利用

来近似下式

参考资料:

1. http://www.ulb.ac.be/di/map/gbonte/bioinfo/course4.pdf

2. http://www.cost-ic0702.org/summercourse/files/feature_selection.pdf

3. Peng, Hanchuan, Fuhui Long, and Chris Ding. "Feature selection based on mutual information criteria of max-dependency, max-relevance, and min-redundancy." IEEE Transactions on pattern analysis and machine intelligence 27.8 (2005): 1226-1238.

4. Zaffalon, Marco, and Marcus Hutter. "Robust feature selection by mutual information distributions." Proceedings of the Eighteenth conference on Uncertainty in artificial intelligence. Morgan Kaufmann Publishers Inc., 2002.

5. Guo, Baofeng, and Mark S. Nixon. "Gait feature subset selection by mutual information." IEEE Transactions on Systems, Man, and Cybernetics-Part A: Systems and Humans 39.1 (2009): 36-46.

本文由zdx3578推荐。

本文分享自微信公众号 - CreateAMind(createamind),作者:Amateur

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2016-11-11

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • pytorch初体验

    一部分的内容在2017年1月18日Facebook发行的PyTorch相比TensorFlow、MXNet有何优势? - 罗若天的回答 - 知乎 已有。

    用户1908973
  • CPC(representation learning with contrastive predctive coding)

    摘要: 监督学习在很多应用方面有了巨大的进步,但是非监督学习却没有如此广的应用,非监督学习是人工智能方面非常重要也非常具有挑战性的领域。这篇论文提出了 cons...

    用户1908973
  • deepmind网格导航论文

    用户1908973
  • Powershell中的变量

    在我们的迷你系列“Variables in Shells”中,了解如何在PowerShell中处理局部变量。

    QRosie
  • (21)Bash用户自定义变量

    变量是计算机内存的单元,其中存放的值可以改变。当Shell脚本需要保存一些信息时,如一个文件名或是一个数字,就把它放在一个变量中。每个变量有一个名字,所以很容易...

    生信real
  • MySQL变量介绍和用法简介

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

    SmileNicky
  • VBA程序的变量和常量

    大家好,在本节就主要介绍变量和常量,主要掌握声明变量和变量赋值,变量的作用域和存活期需要理解。

    无言之月
  • 机器学习实战 | 数据探索(变量变换、生成)

    1.1、什么是变量变换? 在数据建模中,变换是指通过函数替换变量。 例如,通过平方/立方根或对数x替换变量x是一个变换。 换句话说,变换是一个改变变量与其他变量...

    用户1332428
  • 一文读懂R中的探索性数据分析

    探索性数据分析(EDA)是数据项目的第一步。我们将创建一个代码模板来实现这一功能。 简介 EDA由单变量(1个变量)和双变量(2个变量)分析组成。

    1480
  • 如何用spss做一般(含虚拟变量)多元线性回归

    回归一直是个很重要的主题。因为在数据分析的领域里边,模型重要的也是主要的作用包括两个方面,一是发现,一是预测。而很多时候我们就要通过回归来进行预测。关...

    小莹莹

扫码关注云+社区

领取腾讯云代金券