zoukankan      html  css  js  c++  java
  • 信息增益的理解

     

    理解(1)

    熵:表示随机变量的不确定性。

    条件熵:在一个条件下,随机变量的不确定性。

    信息增益:熵 - 条件熵

    在一个条件下,信息不确定性减少的程度!

    通俗地讲,X(明天下雨)是一个随机变量,X的熵可以算出来, Y(明天阴天)也是随机变量,在阴天情况下下雨的信息熵我们如果也知道的话(此处需要知道其联合概率分布或是通过数据估计)即是条件熵。

    两者相减就是信息增益!原来明天下雨例如信息熵是2,条件熵是0.01(因为如果是阴天就下雨的概率很大,信息就少了),这样相减后为1.99,在获得阴天这个信息后,下雨信息不确定性减少了1.99!是很多的!所以信息增益大!也就是说,阴天这个信息对下雨来说是很重要的!

    所以在特征选择的时候常常用信息增益,如果IG(信息增益大)的话那么这个特征对于分类来说很关键~~ 决策树就是这样来找特征的!

    理解(2)

    作者:忆臻
    链接:https://www.zhihu.com/question/22104055/answer/161415527
    来源:知乎
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

    我通过例子一步一步讲解这个概念。

    在决策树算法的学习过程中,信息增益是特征选择的一个重要指标,它定义为一个特征能够为分类系统带来多少信息,带来的信息越多,说明该特征越重要,相应的信息增益也就越大。

    概念
    我们前面说了,信息熵是代表随机变量的复杂度(不确定度)通俗理解信息熵 - 知乎专栏,条件熵代表在某一个条件下,随机变量的复杂度(不确定度)通俗理解条件熵 - 知乎专栏。

    而我们的信息增益恰好是:信息熵-条件熵。

    换句话说,信息增益代表了在一个条件下,信息复杂度(不确定性)减少的程度。

    那么我们现在也很好理解了,在决策树算法中,我们的关键就是每次选择一个特征,特征有多个,那么到底按照什么标准来选择哪一个特征。

    这个问题就可以用信息增益来度量。如果选择一个特征后,信息增益最大(信息不确定性减少的程度最大),那么我们就选取这个特征。

    例子
    我们有如下数据:

    可以求得随机变量X(嫁与不嫁)的信息熵为:

    嫁的个数为6个,占1/2,那么信息熵为-1/2log1/2-1/2log1/2 = -log1/2=0.301

    现在假如我知道了一个男生的身高信息。

    身高有三个可能的取值{矮,中,高}

    矮包括{1,2,3,5,6,11,12},嫁的个数为1个,不嫁的个数为6个

    中包括{8,9} ,嫁的个数为2个,不嫁的个数为0个

    高包括{4,7,10},嫁的个数为3个,不嫁的个数为0个

    先回忆一下条件熵的公式如下:

    我们先求出公式对应的:

    H(Y|X = 矮) = -1/7log1/7-6/7log6/7=0.178

    H(Y|X=中) = -1log1-0 = 0

    H(Y|X=高) = -1log1-0=0

    p(X = 矮) = 7/12,p(X =中) = 2/12,p(X=高) = 3/12

    则可以得出条件熵为:

    7/120.178+2/120+3/12*0 = 0.103

    那么我们知道信息熵与条件熵相减就是我们的信息增益,为

    0.301-0.103=0.198

    所以我们可以得出我们在知道了身高这个信息之后,信息增益是0.198

    结论
    我们可以知道,本来如果我对一个男生什么都不知道的话,作为他的女朋友决定是否嫁给他的不确定性有0.301这么大。

    当我们知道男朋友的身高信息后,不确定度减少了0.198.也就是说,身高这个特征对于我们广大女生同学来说,决定嫁不嫁给自己的男朋友是很重要的。

    至少我们知道了身高特征后,我们原来没有底的心里(0.301)已经明朗一半多了,减少0.198了(大于原来的一半了)。

    那么这就类似于非诚勿扰节目里面的桥段了,请问女嘉宾,你只能知道男生的一个特征。请问你想知道哪个特征。

    假如其它特征我也全算了,信息增益是身高这个特征最大。那么我就可以说,孟非哥哥,我想知道男嘉宾的一个特征是身高特征。因为它在这些特征中,对于我挑夫君是最重要的,信息增益是最大的,知道了这个特征,嫁与不嫁的不确定度减少的是最多的。

    哈哈,希望能对理解信息增益有所帮助。





  • 相关阅读:
    基于VIP的keepalived高可用架构
    高性能Nginx最佳实践
    Ubuntu安装Nginx
    Synchronized总结及底层原理分析#网易微专业# #Java#
    springboot Restful开发
    Volatile详解
    IOC知识点详细汇总
    python 一个函数让你决定你的二维码
    用python批量生成简单的xml文档
    基于tensorflow搭建一个神经网络
  • 原文地址:https://www.cnblogs.com/longsongpong/p/11679790.html
Copyright © 2011-2022 走看看