精华内容
下载资源
问答
  • 信息量,信息熵,信息增益概念的理解计算信息信息信息增益条件熵 你好!让我们聊一聊 信息量,信息熵,信息增益的概念和公式,这对以后学习决策树会有很大的帮助。 信息量 某个具体事件发生的产生的信息量往往...

    信息量,信息熵,信息增益概念的理解和计算

    你好!让我们聊一聊 信息量,信息熵,信息增益的概念和公式,这对以后学习决策树会有很大的帮助。

    信息量

    某个具体事件发生的产生的信息量往往和他发生的概率成反比,即发生的概率越小,产生的信息量越大。

    信息熵

    信息熵是随机变量所有取值的均值之和,信息熵是正数,信息熵越小,表示事情的不确定性越小,熵的计算公式如下:
    Alt

    信息增益

    信息增益=信息熵-条件熵
    信息熵指在一个待分类集合熵值
    条件熵指在一个按照某个特征分类后,分别计算每个类别的熵值,按照特征分类比例求出的均值
    信息增益代表在某个特征的条件下,事件发生的不确定性减少的程度,那下面我们就介绍条件熵和他的计算公式。
    信息增益计算公式:
    Alt

    条件熵

    条件熵是在某个特征条件下按照概率某个条件分类之后的分别计算熵,在计算出的均值
    Alt
    `

    展开全文
  • 一、GINI系数(基尼系数) 衡量数据的不纯度或者不确定性。值越大样本集合的不确定性也越大。 G=1−∑i=1kp12 G= 1-\sum_{i=1}^kp1^2 ...信息增益 增益率指标(C4.5) 错误率(取值范围:0.5-1) ...

    一、GINI系数(基尼系数)

    衡量数据的不纯度或者不确定性。值越大样本集合的不确定性也越大。
    G = 1 − ∑ i = 1 k p 1 2 G= 1-\sum_{i=1}^kp1^2 G=1i=1kp12
    GINI指标:取值范围(0-0.5)

    基于GINI指标的算法:Cart

    二、INFO (信息熵)

    信息熵:对信息的量化度量,反映信息所携带的信息量大小。基于INFO指标的算法:ID3、C4.5。

    在这里插入图片描述

    信息增益
    在这里插入图片描述

    增益率指标(C4.5)
    在这里插入图片描述
    错误率(取值范围:0.5-1)
    在这里插入图片描述

    展开全文
  • 信息熵与信息增益概念

    千次阅读 2013-09-26 18:23:11
    熵是一个信息论中很抽象的概念,从熵定义的角度来看,熵表示一组信息中,所有随机变量出现的期望,他的计算公是: Entropy(S):H(x)=∑p(xi)log1/(p(xi)) (i=1,2,..n)=-∑p(xi)log(p(xi)) (i=1,2,..n)其中log的底数...

    关于熵的概念:

    熵是一个信息论中很抽象的概念,从熵定义的角度来看,熵表示一组信息中,所有随机变量出现的期望,他的计算公是:

    Entropy(S):H(x)=∑p(xi)*log1/(p(xi)) (i=1,2,..n)=-∑p(xi)*log(p(xi)) (i=1,2,..n)其中log的底数是2.

    公式的理解是:p(i)表示第i个变量出现的概率,则1/p(i)表示若p(i)发生的样本容量,如果用二进制来表示样本容量,则n=log2 1/p(i),所以将所有的随机的变量和用二进制表示的样本容量的二进制数的容量相加就得到熵。

    从中可以看到,熵表示了一个分类中数据的杂乱程度,熵越小的话,分类就越有规律,所以我们自然会联想到,若要在数据挖掘中使得分类的效果最好,就要设法减小这个信息熵。从而我们又引入了信息增益的概念。因为对于一个集合,可能有多种分类的方法,那么哪种分类是最优呢?如果原来的分组的信息熵记为H(x),

    那么划分后的分组的信息熵我们用计算公式:I(X; split) =p(good)*H(g)+p(wrong)*H(w),

    这里的p(good)是符号化表示。我假如将一箱苹果数目为x,其中有好有坏,按一种标准比如外观将好的分为一堆(good)有g个,则p(good)=g/x。H(g)的计算方法同信息熵的计算方法。

    的信息增益的公式为:Gain(X;split)=H(x)-I(X;split);当然得到的Gain()的值越大表示分配的越好。


    展开全文
  • from:http://www.cnblogs.com/fantasy01/p/4581803.html?utm_source=tuicool and参考:周志华《机器学习》 ... 关于对信息、熵、信息增益信息论里的概念,是对数据处理的量化,这几个概念主要...

    from:http://www.cnblogs.com/fantasy01/p/4581803.html?utm_source=tuicool

     

    关于对信息、熵、信息增益是信息论里的概念,是对数据处理的量化,这几个概念主要是在决策树里用到的概念,因为在利用特征来分类的时候会对特征选取顺序的选择,这几个概念比较抽象,我也花了好长时间去理解(自己认为的理解),废话不多说,接下来开始对这几个概念解释,防止自己忘记的同时,望对其他人有个借鉴的作用,如有错误还请指出。

    1、信息

    这个是熵和信息增益的基础概念,我觉得对于这个概念的理解更应该把他认为是一用名称,就比如‘鸡‘(加引号意思是说这个是名称)是用来修饰鸡(没加引号是说存在的动物即鸡),‘狗’是用来修饰狗的,但是假如在鸡还未被命名为'鸡'的时候,鸡被命名为‘狗’,狗未被命名为‘狗’的时候,狗被命名为'鸡',那么现在我们看到狗就会称其为‘鸡’,见到鸡的话会称其为‘鸡’,同理,信息应该是对一个抽象事物的命名,无论用不用‘信息’来命名这种抽象事物,或者用其他名称来命名这种抽象事物,这种抽象事物是客观存在的。

    引用香农的话,信息是用来消除随机不确定性的东西,当然这句话虽然经典,但是还是很难去搞明白这种东西到底是个什么样,可能在不同的地方来说,指的东西又不一样,从数学的角度来说可能更加清楚一些,数学本来就是建造在悬崖之上的一种理论,一种抽象的理论,利用抽象来解释抽象可能更加恰当,同时也是在机器学习决策树中用的定义,如果带分类的事物集合可以划分为多个类别当中,则某个类(xi)的信息定义如下:         

    I(x)用来表示随机变量的信息,p(xi)指是当xi发生时的概率,这里说一下随机变量的概念,随机变量时概率论中的概念,是从样本空间到实数集的一个映射,样本空间是指所有随机事件发生的结果的并集,比如当你抛硬币的时候,会发生两个结果,正面或反面,而随机事件在这里可以是,硬币是正面;硬币是反面;两个随机事件,而{正面,反面}这个集合便是样本空间,但是在数学中不会说用‘正面’、‘反面’这样的词语来作为数学运算的介质,而是用0表示反面,用1表示正面,而“正面->1”,"反面->0"这样的映射便为随机变量,即类似一个数学函数。

    2、熵

    既然信息已经说完,熵说起来就不会那么的抽象,更多的可能是概率论的定义,熵是约翰.冯.诺依曼建议使用的命名(当然是英文),最初原因是因为大家都不知道它是什么意思,在信息论和概率论中熵是对随机变量不确定性的度量,与上边联系起来,熵便是信息的期望值,可以记作:

                             

     

    n为:类别的个数。

    熵只依赖X的分布,和X的取值没有关系,熵是用来度量不确定性,当熵越大,概率说X=xi的不确定性越大,反之越小,在机器学期中分类中说,熵越大即这个类别的不确定性更大,反之越小,当随机变量的取值为两个时,熵随概率的变化曲线如下图:

                        

    当p=0或p=1时,H(p)=0,随机变量完全没有不确定性,当p=0.5时,H(p)=1,此时随机变量的不确定性最大

    条件熵

    条件熵是用来解释信息增益而引入的概念,概率定义:随机变量X在给定条件下随机变量Y的条件熵,对定义描述为:X给定条件下Y的条件干率分布的熵对X的数学期望,在机器学习中为选定某个特征后的熵,公式如下:

                    

    这里可能会有疑惑,这个公式是对条件概率熵求期望,但是上边说是选定某个特征的熵,没错,是选定某个特征的熵,因为一个特征可以将待分类的事物集合分为多类,即一个特征对应着多个类别,因此在此的多个分类即为X的取值。

    3、信息增益

    信息增益在决策树算法中是用来选择特征的指标,信息增益越大,则这个特征的选择性越好,在概率中定义为:待分类的集合的熵和选定某个特征的条件熵之差(这里只的是经验熵或经验条件熵,由于真正的熵并不知道,是根据样本计算出来的),公式如下:

                    

    注意:这里不要理解偏差,因为上边说了熵是类别的,但是在这里又说是集合的熵,没区别,因为在计算熵的时候是根据各个类别对应的值求期望来等到熵

     

    4、信息增益算法(举例,摘自统计学习算法)

    训练数据集合D,|D|为样本容量,即样本的个数(D中元素个数),设有K个类Ck来表示,|Ck|为Ci的样本个数,|Ck|之和为|D|,k=1,2.....,根据特征A将D划分为n个子集D1,D2.....Dn,|Di|为Di的样本个数,|Di|之和为|D|,i=1,2,....,记Di中属于Ck的样本集合为Dik,即交集,|Dik|为Dik的样本个数,算法如下:

    输入:D,A

    输出:信息增益g(D,A)

    (1)D的经验熵H(D)

            

    此处的概率计算是根据古典概率计算,由于训练数据集总个数为|D|,某个分类的个数为|Ck|,在某个分类的概率,或说随机变量取某值的概率为:|Ck|/|D|

    (2)选定A的经验条件熵H(D|A)

            

     

    此处的概率计算同上,由于|Di|是选定特征的某个分类的样本个数,则|Di|/|D|,可以说为在选定特征某个分类的概率,后边的求和可以理解为在选定特征的某个类别下的条件概率的熵,即训练集为Di,交集Dik可以理解在Di条件下某个分类的样本个数,即k为某个分类,就是缩小训练集为Di的熵

    (3)信息增益

            

     

    4、基尼指数

    1、是一种不等性度量;
    2、通常用来度量收入不平衡,可以用来度量任何不均匀分布;
    3、是介于0~1之间的数,0-完全相等,1-完全不相等;
    4、总体内包含的类别越杂乱,GINI指数就越大(跟熵的概念很相似)

     

    基尼不纯度指标

    在CART算法中, 基尼不纯度表示一个随机选中的样本在子集中被分错的可能性。基尼不纯度为这个样本被选中的概率乘以它被分错的概率。当一个节点中所有样本都是一个类时,基尼不纯度为零。
    假设y的可能取值为{1, 2, ..., m},令fi是样本被赋予i的概率,则基尼指数可以通过如下计算:

    使用基尼系数作为特征划分规则时:

    上述使用jini指数作为特征分类标准时,以特定的一个属性作为一部分,另外的全部属性作为另外一部分,来计算jini指数。

    《统计学习》中CART树的gini指数计算:
    计算的表格数据,是一个分类问题:

    计算最佳的特征值和属性值

     


     

     

    5、 python实现信息增益和基尼系数 的计算

    1.输入数据集

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    """
    __title__ = ''
    __author__ = 'mike_jun'
    __mtime__ = '2019-7-12'
    #目的:
    """
    import numpy as np
    import pandas as pd
    import matplotlib.pyplot as plt
    import io
    
    # 计算两个特征的基尼指数
    data_str = output = io.StringIO('''编号,色泽,根蒂,敲声,纹理,脐部,触感,密度,含糖率,好瓜
    1,青绿,蜷缩,浊响,清晰,凹陷,硬滑,0.697,0.46,是  
    2,乌黑,蜷缩,沉闷,清晰,凹陷,硬滑,0.774,0.376,是  
    3,乌黑,蜷缩,浊响,清晰,凹陷,硬滑,0.634,0.264,是  
    4,青绿,蜷缩,沉闷,清晰,凹陷,硬滑,0.608,0.318,是  
    5,浅白,蜷缩,浊响,清晰,凹陷,硬滑,0.556,0.215,是  
    6,青绿,稍蜷,浊响,清晰,稍凹,软粘,0.403,0.237,是  
    7,乌黑,稍蜷,浊响,稍糊,稍凹,软粘,0.481,0.149,是  
    8,乌黑,稍蜷,浊响,清晰,稍凹,硬滑,0.437,0.211,是  
    9,乌黑,稍蜷,沉闷,稍糊,稍凹,硬滑,0.666,0.091,否  
    10,青绿,硬挺,清脆,清晰,平坦,软粘,0.243,0.267,否  
    11,浅白,硬挺,清脆,模糊,平坦,硬滑,0.245,0.057,否  
    12,浅白,蜷缩,浊响,模糊,平坦,软粘,0.343,0.099,否  
    13,青绿,稍蜷,浊响,稍糊,凹陷,硬滑,0.639,0.161,否  
    14,浅白,稍蜷,沉闷,稍糊,凹陷,硬滑,0.657,0.198,否  
    15,乌黑,稍蜷,浊响,清晰,稍凹,软粘,0.36,0.37,否  
    16,浅白,蜷缩,浊响,模糊,平坦,硬滑,0.593,0.042,否  
    17,青绿,蜷缩,沉闷,稍糊,稍凹,硬滑,0.719,0.103,否  ''')
    
    data = pd.read_csv(data_str)
    data.set_index('编号', inplace=True)
    print(data)

    2.计算系统信息熵

    def entropy(data):
        length = data.size
        ent = 0
        for i in data.value_counts():
            print(i)
            prob = i / length
            ent += - prob * (np.log2(prob))
        return ent
    print('--------')
    print(entropy(data['好瓜'])) # 0.9975025463691153

    3.计算信息增益

    def gain(data, input_column, output_colum):
        """
        :param data: 输入DataFrame 的数据
        :param input_column: 特征的名称
        :param output_colum: 好瓜or 坏
        :return:
        """
        ret = 0
        lens = data[output_colum].size
        all_attribute = data[input_column].value_counts()  # 保存特征全部属性的取值个数
        for name in data[input_column].unique(): # 特征的不同属性名
            print(name)
            temp = 0
            for i in range(len(data[output_colum].unique())):  # 好瓜 or 坏瓜
                attribute_num = data[input_column].where(data[output_colum] == data[output_colum].unique()[i]).value_counts()
                # print(attribute_num[name]) # 当刚好 好瓜 中没有 硬挺这一属性值的时候,使用异常处理机制
                try:
                    prob = int(attribute_num[name]) / int(all_attribute[name])
                except:
                    prob = 0
    
                if prob == 0:
                    temp += 0
                else:
                    temp += - prob * np.log2(prob)
                # 还需要乘以 该属性出现的概率
            temp *= all_attribute[name] / lens
            ret += temp
        return ret
    print(gain(data, '根蒂', '好瓜'))
    entD = entropy(data['好瓜'])
    for name in data.columns[:-3]:
        print('打印出全部的特征的信息增益')
        ret = gain(data, name, '好瓜')
        print(name)
        gain_ = entD - ret
        print(gain_)
    print(entD)

    4.计算基尼系数

    # 计算基尼系数, 基尼系数越小,越应该选择该特征作为分裂结点
    def gini_index(data, input_column, output_colum):
        ret = 0
        lens = data[output_colum].size
        all_attribute = data[input_column].value_counts()  # 保存全部属性的取值个数
        for name in data[input_column].unique(): # 特征的不同属性
            print(name)
            temp = 0
            for i in range(len(data[output_colum].unique())):  # 输出值的取值个数
                # 当 为好瓜时,
                attribute_num = data[input_column].where(data[output_colum] == data[output_colum].unique()[i]).value_counts()
                # print(attribute_num[name]) # 当刚好 好瓜中没有 硬挺这一属性值的时候,使用异常处理机制
                try:
                    prob = int(attribute_num[name]) / int(all_attribute[name])
                except:
                    prob = 0
    
                if prob == 0:
                    temp += 0
                else:
                    temp += np.square(prob)
                # 还需要乘以 该属性出现的概率
            temp = all_attribute[name] / lens * (1-temp)
            ret += temp
        return ret
    
    print('打印出全部的特征的基尼系数')
    for name in data.columns[:-3]:
        ret = gain(data, name, '好瓜')
        print(name)
        print(ret)

     


    项目推荐:

    2000多G的计算机各行业电子资源分享(持续更新)

    2020年微信小程序全栈项目之喵喵交友【附课件和源码】

    Spring Boot开发小而美的个人博客【附课件和源码】

    Java微服务实战296集大型视频-谷粒商城【附代码和课件】

    Java开发微服务畅购商城实战【全357集大项目】-附代码和课件

    最全最详细数据结构与算法视频-【附课件和源码】

    在这里插入图片描述

     

    展开全文
  • 信息增益

    千次阅读 2017-11-09 15:06:43
    关于对信息、熵、信息增益信息论里的概念,是对数据处理的量化,这几个概念主要是在决策树里用到的概念,因为在利用特征来分类的时候...这个是熵和信息增益的基础概念,我觉得对于这个概念的理解更应该把他认为是一用
  • 信息增益信息增益率详解

    万次阅读 2015-03-17 23:45:17
    熟悉决策树算法的人都知道ID3以及C4.5两种算法,当然也非常清楚信息增益以及信息增益率两个概念信息增益:节点M的信息熵E1与其全部子节点信息熵之E2的差。 信息增益率:节点信息增益与节点分裂信息度量的比值。...
  • 信息增益、Gini、信息增益
  • 关于信息增益和

    千次阅读 2015-12-14 21:15:25
    1、信息增益 在学习决策树时接触到到了信息增益(Information Gain),由此了解到熵。不解顺序查之。 在划分数据集之前之后信息发生的变化成为信息增益。因此,在决策树的根节点,选用的判定划分的属性,在划分...
  • 信息熵 条件熵 信息增益 信息增益比 GINI系数

    万次阅读 多人点赞 2016-05-24 10:30:55
    信息论与概率统计学中,熵(entropy)是一个很重要的概念。在机器学习与特征工程中,熵的概念也用得灰常多。今天就把跟熵有关的东东稍微整理一下,权当笔记。1.信息熵熵是神马东东?信息论的开山祖师爷Shannon...
  • 第二十五节决策树系列之信息增益和信息增益率(4) 上一节我们讲解了决策树的分裂条件以及评估纯度的其中一个方式,基尼系数。本节的话,我们再讲解一个评估纯度的方式,基于信息增益的方式,即ID3树使用的评估方式。...
  • @(关于机器学习的其他)[KL散度][信息熵][交叉熵] 1、信息量 2、信息熵 3、交叉熵cross-entropy 3.1 交叉熵 cross-entropy在机器学习领域的作用 ...6、互信息信息增益) 6.1 非负性证明 ...
  • 【机器学习】信息、熵和信息增益

    千次阅读 2015-06-17 13:36:11
    关于对信息、熵、信息增益信息论里的概念,是对数据处理的量化,这几个概念主要是在决策树里用到的概念,因为在利用特征来分类的时候会对特征选取...这个是熵和信息增益的基础概念,我觉得对于这个概念的理解更应该
  • 今天在课堂上给大家讲到信息熵、信息增益和信息增益率的时候,很多同学都不理解,对数学公式很敬畏,其实不然,接下来我就使用Python原生代码实现信息熵、信息增益信息增益率的计算!!! 1.信息熵: 1.1 信息熵...
  • 信息和信息增益   对决策树有过初步了解的人对决策树应该有个初步概念,决策树就是将各种属性根据在当前条件下,计算出划分结果最有利的属性,并将该属性做为划分属性,以此类推,直到所有的属性都划分完毕。...
  • 1、 信息熵:H(X) 描述X携带的信息量。 信息量越大(值变化越多),则越不确定,越不容易被预测。 对于抛硬币问题,每次有2种情况,信息熵为1 对于投骰子问题,每次有6中情况,信息熵为1.75 ... 下面为公式: ...
  • 话说今天《机器学习》上课被很深地打击了,标名为“数据挖掘”专业的我居然连个信息增益的例子都没能算正确。唉,自看书以来,这个地方就一直没有去推算过,每每看到决策树时看完Entropy就直接跳过后面增益计算了。...
  • 在开始解释信息和信息增益之前,我们先来解释一下什么是信息:能消除不确定性的内容才能叫信息,而告诉你一个想都不用想的事实,那不叫信息。 比如数据分析师的工作经常是要用数据中发现信息,有一天上班你告诉...
  • 信息论与概率统计学中,熵(entropy)是一个...它是熵和信息增益的基础概念。引用香农的话,信息是用来消除随机不确定性的东西。如果一个带分类的事物集合可以划分为多个类别,则其中某个类(xi)的信息定义:  ...
  • 决策树——信息增益信息增益率、基尼指数背景——信息量的表示信息信息增益增益率基尼系数 这是机器学习课上面教的几个概念,在这里记一下笔记,如果大家发现我的理解有误,请指正,谢谢。 背景——信息量的表示...
  • 信息熵的概念很简单,熵在信息论中代表随机变量不确定的度量。 熵越大,数据的不确定性越高。 熵越小,数据的不确定性越低。 信息熵的公式: 下面的公式就是香农提出的信息熵的公式: H=−∑i=1kpilog(pi)H = - \...
  • 介绍信息和信息增益之前,先介绍信息增量的概念 文章目录1、信息量2、熵3、条件熵4、信息增益5、参考文献: 1、信息量 定义:信息多少的量度,与事件发生的概率相关。 信息量用III表示, 记事件A发生的概率为p,则...
  • 熵与信息增益

    万次阅读 多人点赞 2016-10-19 23:09:00
    熵与信息增益在决策树算法中,决定特征优先级时,需要用到熵的概念,先挖个坑1 信息信息量是用来衡量一个事件的不确定性的;一个事件发生的概率越大,不确定性越小,则它所携带的信息量就越小。假设X是一个离散型...
  • 信息和信息增益

    2016-07-04 11:41:00
    若不确定性越小,则信息量越小,熵越小举例来说,掷一个硬币,掷一个色子,这两个系统,谁包含的信息量大呢?直观理解当然是后者。深入考虑一下这是为什么呢?因为掷一个色子能够产生6种状态,而一枚硬币只有两种...
  • 信息熵,信息增益的研究

    千次阅读 2018-07-13 09:51:46
    信息熵,信息增益的研究0 引言1948年香农提出“信息熵”的概念,解决了对信息的量化度量问题。信息熵这个词是C.E.香农从热力学中借用过来的。热力学中的热熵是表示分子状态混乱程度的物理量。香农用信息熵的概念...
  • 关于对信息、熵、信息增益信息论里的概念,是对数据处理的量化,这几个概念主要是在决策树里用到的概念,因为在利用特征来分类的时候会...这个是熵和信息增益的基础概念,我觉得对于这个概念的理解更应该把他认为...
  • 机器学习笔记之信息熵、信息增益和决策树(ID3算法)
  • 先简单介绍一下概念 熵:表示随机变量的不确定性。 条件熵:在一个条件下,随机变量的不确定性。 信息增益:熵 - 条件熵。在一个条件下,信息不确定性减少的程度。通俗地讲,X(明天下雨)是一个随机变量,X的熵...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 8,580
精华内容 3,432
关键字:

信息增益的概念和公式