精华内容
下载资源
问答
  • 2021-11-18 22:19:18
    #导入相关的库
    import pandas as pd 
    import numpy as np
    #导入题目
    data=pd.DataFrame({'日志密度':['s','s','l','m','l','m','m','l','m','s'],
                     '好友密度':['s','l','m','m','m','l','s','m','s','s'],
                     '是否使用真实头像':['no','yes','yes','yes','yes','yes','no','no','yes','yes'],
                     '账号是否真实':    ['no','yes','yes','yes','yes','yes','no','yes','yes','no']})
    data[['日志密度','好友密度','是否使用真实头像','账号是否真实']]

     根据下列各种特征来判断微博账号是否真实

    #定义计算信息熵的函数:计算Infor(D)
    def infor(data):
        a = pd.value_counts(data) / len(data)
        return sum(np.log2(a) * a * (-1))
    #定义计算信息增益的函数:计算g(D|A)
    def g(data,str1,str2):
        e1 = data.groupby(str1).apply(lambda x:infor(x[str2]))
        p1 = pd.value_counts(data[str1]) / len(data[str1])
        #计算Infor(D|A)
        e2 = sum(e1 * p1)
        return infor(data[str2]) - e2
    
    更多相关内容
  • python计算信息熵、信息增益和信息增益率

    千次阅读 多人点赞 2020-04-04 22:13:36
    在这里,我将用python代码计算信息熵、信息增益和信息增益率。 以下代码基于python、numpy和pandas。 实现上述计算的代码一共11行。

    在这里,我将用python代码计算信息熵信息增益信息增益率

    以下代码基于python、numpy和pandas。

    没时间看的同学,可以直接跳到总结。

    往期博客:

    线性方程组的迭代法 python代码实现

    函数插值法之牛顿插值法 python代码实现

    数值积分 python代码实现

    数值微分 python代码实现

    信息熵

    什么是信息熵,怎么计算,一图盖之。

    信息熵

    首先

    import pandas as pd
    import numpy as np
    

    然后我们在此设置一个演示用的大学生贷款数据集。

    data = pd.DataFrame({'学历':['专科','专科','专科','专科','专科','本科','本科','本科','本科','本科','研究生','研究生','研究生','研究生','研究生'],
                         '婚否':['否','否','是','是','否','否','否','是','否','否','否','否','是','是','否'],
                         '是否有车':['否','否','否','是','否','否','否','是','是','是','是','是','否','否','否'],
                         '收入水平':['中','高','高','中','中','中','高','高','很高','很高','很高','高','高','很高','中'],
                         '类别':['否','否','是','是','否','否','否','是','是','是','是','是','是','是','否']})
    data[['学历','婚否','是否有车','收入水平','类别']]
    

    数据集如下图所示:

    贷款数据集

    定义函数

    定义函数这步我大多是参考和借鉴了下面这篇文章,所以我这篇文章也就不挂原创了。
    python详细步骤计算信息增益

    #定义计算信息熵的函数:计算Infor(D)
    def infor(data):
        a = pd.value_counts(data) / len(data)
        return sum(np.log2(a) * a * (-1))
    

    参数说明

    “data”就是我们要输入的数据集。

    实例运行

    计算信息熵主要是为了后两步做准备,所以这一步就不实例操作了。

    信息增益

    什么是信息增益,怎么计算,一图盖之。

    信息增益

    定义函数

    #定义计算信息增益的函数:计算g(D|A)
    def g(data,str1,str2):
        e1 = data.groupby(str1).apply(lambda x:infor(x[str2]))
        p1 = pd.value_counts(data[str1]) / len(data[str1])
        #计算Infor(D|A)
        e2 = sum(e1 * p1)
        return infor(data[str2]) - e2
    

    参数说明

    “str1”就是代表图中的“A”。

    “str2”就是代表图中的“D”。

    实例运行

    拿给出的实例试验一下:

    g(data,'学历','类别')
    

    得出如下结果:

    0.08300749985576883

    信息增益率

    什么是信息增益率,怎么计算,一图盖之。

    信息增益率

    定义函数

    #定义计算信息增益率的函数:计算gr(D,A)
    def gr(data,str1,str2):
        return g(data,str1,str2)/infor(data[str1])
    

    实例运行

    拿给出的实例试验一下:

    gr(data,'学历','类别')
    

    得出如下结果:

    0.05237190142858302

    总结

    三者的函数总结如下:

    #定义计算信息熵的函数:计算Infor(D)
    def infor(data):
        a = pd.value_counts(data) / len(data)
        return sum(np.log2(a) * a * (-1))
    
    #定义计算信息增益的函数:计算g(D|A)
    def g(data,str1,str2):
        e1 = data.groupby(str1).apply(lambda x:infor(x[str2]))
        p1 = pd.value_counts(data[str1]) / len(data[str1])
        #计算Infor(D|A)
        e2 = sum(e1 * p1)
        return infor(data[str2]) - e2
    
    #定义计算信息增益率的函数:计算gr(D,A)
    def gr(data,str1,str2):
        return g(data,str1,str2)/infor(data[str1])
    

    “data”就是我们要输入的数据集。

    “str1”就是代表图中的“A”。

    “str2”就是代表图中的“D”。

    其实信息增益率比信息增益更准确。

    展开全文
  • 【结合实例】信息增益计算

    万次阅读 多人点赞 2017-11-22 09:53:09
    介绍信息增益之前,首先需要介绍一下熵的概念,这是一个物理学概念,表示“一个系统的混乱程度”。系统的不确定性越高,熵就越大。假设集合中的变量X={x1,x2…xn},它对应在集合的概率分别是P={p1,p2…pn}。那么这个...

    参考文章:

    https://www.cnblogs.com/qcloud1001/p/6735352.html

    http://blog.csdn.net/lixuemei504/article/details/7278748

    http://blog.csdn.net/u013164528/article/details/44359677

    信息增益原理介绍

    介绍信息增益之前,首先需要介绍一下熵的概念,这是一个物理学概念,表示“一个系统的混乱程度”。系统的不确定性越高,熵就越大。假设集合中的变量X={x1,x2…xn},它对应在集合的概率分别是P={p1,p2…pn}。那么这个集合的熵表示为:

    举一个的例子:对游戏活跃用户进行分层,分为高活跃、中活跃、低活跃,游戏A按照这个方式划分,用户比例分别为20%,30%,50%。游戏B按照这种方式划分,用户比例分别为5%,5%,90%。那么游戏A对于这种划分方式的熵为:

    同理游戏B对于这种划分方式的熵为:

    游戏A的熵比游戏B的熵大,所以游戏A的不确定性比游戏B高。用简单通俗的话来讲,游戏B要不就在上升期,要不就在衰退期,它的未来已经很确定了,所以熵低。而游戏A的未来有更多的不确定性,它的熵更高。

    介绍完熵的概念,我们继续看信息增益。为了便于理解,我们还是以一个实际的例子来说明信息增益的概念。假设有下表样本

    !

    第一列为QQ,第二列为性别,第三列为活跃度,最后一列用户是否流失。我们要解决一个问题:性别和活跃度两个特征,哪个对用户流失影响更大?我们通过计算信息熵可以解决这个问题。

    按照分组统计,我们可以得到如下信息:

    其中Positive为正样本(已流失),Negative为负样本(未流失),下面的数值为不同划分下对应的人数。那么可得到三个熵:

    整体熵:

    性别熵:

    性别信息增益:

    同理计算活跃度熵:

    活跃度信息增益:

    活跃度的信息增益比性别的信息增益大,也就是说,活跃度对用户流失的影响比性别大。在做特征选择或者数据分析的时候,我们应该重点考察活跃度这个指标。

    使用Hive SQL实现信息熵的计算

    从表2中我们不难发现,在计算信息熵和信息增益之前,需要对各维度做汇总计数,计算各公式中出现的分母。Hive SQL中,cube能帮助我们很快的做汇总计算,话不多说直接上代码:

    
    SELECT
    t1.feature_name,
    SUM((ea_all/es)*EA) as gain,
    SUM(NVL(-(ea_all/ES)*log2(ea_all/es),0)) as info,--计算信息增益率的分母 SUM((ea_all/es)*EA)/SUM(NVL(-(ea_all/es)*log2(ea_all/es),0)) as gain_rate--信息增益率计算 FROM ( SELECT feature_name, feature_value, ea_all, --Key Step2 对于整体熵,要记得更换符号,NVL的出现是防止计算log2(0)得NULL case when feature_value='-100' then -(NVL((ea_positive/ea_all)*log2(ea_positive/ea_all),0)+NVL((ea_negative/ea_all)*log2(ea_negative/ea_all),0)) else (NVL((ea_positive/ea_all)*log2(ea_positive/ea_all),0)+NVL((ea_negative/ea_all)*log2(ea_negative/ea_all),0)) end as EA FROM ( SELECT feature_name, feature_value, SUM(case when is_lost=-100 then user_cnt else 0 end) as ea_all, SUM(case when is_lost=1 then user_cnt else 0 end) as ea_positive, SUM(case when is_lost=0 then user_cnt else 0 end) as ea_negative FROM ( SELECT feature_name, --Key Step1 对feature值和label值做汇总统计,1、用于熵计算的分母,2、计算整体熵情况 case when grouping(feature_value)=1 then '-100' else feature_value end as feature_value, case when grouping(is_lost)=1 then -100 else is_lost end as is_lost, COUNT(1) as user_cnt FROM ( SELECT feature_name,feature_value,is_lost FROM gain_caculate )GROUP BY feature_name,cube(feature_value,is_lost) )GROUP BY feature_name,feature_value ) )t1 join ( --Key Step3信息增益计算时,需要给出样本总量作为分母 SELECT feature_name,COUNT(1) as es FROM gain_caculate GROUP BY feature_name )t2 on t1.feature_name=t2.feature_name GROUP BY t1.feature_name 

    数据表结构如下:

    关键步骤说明:

    KeyStep1:各特征的熵计算

    KeyStep2:各feature下的信息增熵

    信息增益计算结果:

    结束语:

    以上为信息熵计算过程的SQL版本,其关键点在于使用cube实现了feature和label所需要的汇总计算。需要的同学只需要按照规定的表结构填入数据,修改SQL代码即可计算信息增益。文中如有不足的地方,还请各位指正。

    参考文档

    [1] 算法杂货铺——分类算法之决策树(Decision tree)

    http://www.cnblogs.com/leoo2sk/archive/2010/09/19/decision-tree.html

    [2] c4.5为什么使用信息增益比来选择特征?

    https://www.zhihu.com/question/22928442

    展开全文
  • python手动计算信息增益

    千次阅读 2021-02-05 20:52:20
    python手动计算信息增益2019年5月23日 17:49 by wst算法实践概念阐述对于决策树, 以前看了很多遍, 但是总感觉摸不着它.里面有个很重要的概念: 信息增益.今天就来手动实现下, 实现之前先说下它的概念(这个定义里好多...

    python手动计算信息增益

    2019年5月23日 17:49 by wst

    算法实践

    概念阐述

    对于决策树, 以前看了很多遍, 但是总感觉摸不着它.

    里面有个很重要的概念: 信息增益.

    今天就来手动实现下, 实现之前先说下它的概念(这个定义里好多名词都有经验二字,是因为都是根据样本得到的).

    特征 A 对训练数据集D的信息增益 g(D,A) 定义为: 集合D的经验熵 H(D) 与特征A给定条件下D 的经验条件熵 H(D|A) 之差, 即:

    g(D,A) = H(D) - H(D|A)

    通俗的说就是:  在一个条件给定情况下,信息不确定性减少的程度!

    在决策树生成过程中,每次选择信息增益最大的那个特征作为节点.

    举例说明

    以买瓜为例,夏天到了, 大家都比较爱吃西瓜, 但是怎么样才能买个好瓜呢? 要不然回家媳妇(女朋友)该说了, 你什么情况? 买个西瓜都买不好. 为了避免挨说, 还是得学好决策树, 搞清楚信息增益是怎么回事.

    数据如下: (下载方式: 链接: https://pan.baidu.com/s/1Gr1TLaVwuwi9lO6BcdjoAQ 提取码: wr9j )

    编号

    色泽

    根蒂

    敲声

    纹理

    脐部

    触感

    好瓜

    1

    青绿

    蜷缩

    浊响

    清晰

    凹陷

    硬滑

    2

    乌黑

    蜷缩

    沉闷

    清晰

    凹陷

    硬滑

    3

    乌黑

    蜷缩

    浊响

    清晰

    凹陷

    硬滑

    4

    青绿

    蜷缩

    沉闷

    清晰

    凹陷

    硬滑

    5

    浅白

    蜷缩

    浊响

    清晰

    凹陷

    硬滑

    6

    青绿

    稍蜷

    浊响

    清晰

    稍凹

    软粘

    7

    乌黑

    稍蜷

    浊响

    稍糊

    稍凹

    软粘

    8

    乌黑

    稍蜷

    浊响

    清晰

    稍凹

    硬滑

    9

    乌黑

    稍蜷

    沉闷

    稍糊

    稍凹

    硬滑

    10

    青绿

    硬挺

    清脆

    清晰

    平坦

    软粘

    11

    浅白

    硬挺

    清脆

    模糊

    平坦

    硬滑

    12

    浅白

    蜷缩

    浊响

    模糊

    平坦

    软粘

    13

    青绿

    稍蜷

    浊响

    稍糊

    凹陷

    硬滑

    14

    浅白

    稍蜷

    沉闷

    稍糊

    凹陷

    硬滑

    15

    乌黑

    稍蜷

    浊响

    清晰

    稍凹

    软粘

    16

    浅白

    蜷缩

    浊响

    模糊

    平坦

    硬滑

    17

    青绿

    蜷缩

    沉闷

    稍糊

    稍凹

    硬滑

    假设我们已经构建好了决策树,现在买了一个西瓜,它的特点是纹理是清晰,根蒂是硬挺的瓜,你来给我判断一下是好瓜还是坏瓜,恰好,你构建了一颗决策树,告诉他,没问题,我马上告诉你是好瓜,还是坏瓜?

    根据决策树的算法步骤,我们可以得到下面的图示过程:

    e574ab63fe9cffae9d5383134026ff61.png

    f807f8ab9cfc1dc8f09a8d8b73d4aa3f.png

    到达叶子结点后,从而得到结论。我这个瓜的判断是坏瓜(要挨说了)。

    这里我们重点来说一下,在树每一层的生长过程中,如何选择特征!每一层选择好了特征之后,树也就自然建好了

    第一个节点(每个节点都是如此)该怎么选呢?  根据我们的结论: 选择信息增益最大的那个特征作.

    根节点下正例(好瓜)占 8/17,反例占 9/17 ,根结点的信息熵为

    fd9fd53e7911f58e3e17f92f0f48e86a.png

    现在可选的特征有:{色泽,根蒂,敲声,纹理,脐部,触感},我们分别计算他们的信息增益:

    色泽特征有3个可能的取值:{青绿,乌黑,浅白}

    D1(色泽=青绿) = {1, 4, 6, 10, 13, 17},正例 3/6,反例 3/6 -- 6,3,3

    D2(色泽=乌黑) = {2, 3, 7, 8, 9, 15},正例 4/6,反例 2/6 -- 6,4,2

    D3(色泽=浅白) = {5, 11, 12, 14, 16},正例 1/5,反例 4/5 -- 5,1,4

    3 个分支结点的信息熵

    7b41b26500d39c0f50fa02d8ac1c5469.png

    那么我们可以知道属性色泽的信息增益是:

    21fc9db7b33491682e54551751d6f645.png

    同理,我们可以求出其它属性的信息增益,分别如下:

    dc895fd0d26c5793b9130f4d09bb206f.png

    根据后文的代码,计算过程为(里面的数字,通过excel筛选即可得到):

    # 色泽

    In [21]: h(8,9,[[6,3,3],[6,4,2],[5,1,4]])

    Out[21]: 0.10812516526536531

    # 根蒂

    In [22]: h(8,9,[[8,5,3],[7,3,4],[2,0,2]])

    Out[22]: 0.14267495956679288

    # 敲声

    In [23]: h(8,9,[[5,2,3],[2,0,2],[10,6,4]])

    Out[23]: 0.14078143361499584

    # 纹理

    In [24]: h(8,9,[[3,0,3],[9,7,2],[5,1,4]])

    Out[24]: 0.3805918973682686

    # 脐部

    In [25]: h(8,9,[[7,5,2],[4,0,4],[6,3,3]])

    Out[25]: 0.28915878284167895

    # 触感

    In [26]: h(8,9,[[5,2,3],[12,6,6]])

    Out[26]: 0.006046489176565584

    于是我们找到了信息增益最大的属性纹理,它的Gain(D,纹理) = 0.381最大。

    于是我们选择的划分属性为“纹理”

    如下:

    8c60aa1f8047c7c13dfc94f6331eaf8f.png于是,我们可以得到了三个子结点,对于这三个子节点,我们可以递归的使用刚刚找信息增益最大的方法进行选择特征属性,

    比如:D1(纹理=清晰) = {1, 2, 3, 4, 5, 6, 8, 10, 15},下次可选的属性集合{色泽、根蒂、敲声、脐部、触感},基于 D1各属性的信息增益,分别求得如下:

    dc5203c2f3d28181cd83fd735ca587b8.png

    手动编码计算:

    In [1]: import pandas as pd

    In [2]: import numpy as np

    In [3]: import math

    In [14]: def lg(v):

    ...: if v==0:

    ...: return 0

    ...: return -v*math.log(v,2)

    ...:

    ...:

    In [15]: def h(f_1, f_0, matrix):

    ...: a = f_1+f_0

    ...: d = lg(f_1/a) + lg(f_0/a)

    ...: m = 0

    ...: for lis in matrix:

    ...: m += lis[0]/a * (lg(lis[1]/lis[0]) + lg(lis[2]/lis[0]))

    ...: return d-m

    ...:

    ...:

    In [16]: h(7,2,[[4,3,1],[4,3,1],[1,1,0]])

    Out[16]: 0.04306839587828004

    In [17]: h(7,2,[[5,5,0],[3,2,1],[1,0,1]])

    Out[17]: 0.45810589515712374

    In [18]: h(7,2,[[2,2,0],[1,0,1],[6,5,1]])

    Out[18]: 0.33085622540971754

    In [19]: h(7,2,[[5,5,0],[1,0,1],[3,2,1]])

    Out[19]: 0.45810589515712374

    In [20]: h(7,2,[[3,1,2],[6,6,0]])

    Out[20]: 0.45810589515712374

    代码说明:

    f_1 -- 好瓜个数, f_0 -- 坏瓜个数, matrix -- 里面有多行, 每一行代表一个属性值的情况: 此属性值个数、此属性值下好瓜的个数、此属性值下坏瓜的个数。

    比如色泽属性,在纹理清晰的情况下,有7个好瓜,2个坏瓜。同时:

    色泽青绿的有4个,这4个中有3个好瓜、1个坏瓜;

    色泽乌黑的有4个,这4个中有3个好瓜、1个坏瓜;

    色泽浅白的有1个,这1个是好瓜;

    此时matrix为:

    [ [4, 3, 1],

    [4, 3, 1],

    [1, 1, 0]]

    函数调用方式为:h(7,2,[[4,3,1],[4,3,1],[1,1,0]]), 值为0.043

    同理,可以算出来根蒂的信息增益为:0.458;敲声:0.331,脐部:0.458,触感:0.458

    于是我们可以选择特征属性为根蒂,脐部,触感三个特征属性中任选一个(因为他们三个相等并最大),其它俩个子结点同理,然后得到新一层的结点,再递归的由信息增益进行构建树即可

    我们最终的决策树如下:

    29fb2d9b396e007e4b1e0c6cdc1ab6a7.png

    参考:

    作者:忆臻

    链接:https://www.zhihu.com/question/22104055/answer/161415527

    来源:知乎

    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

    Comment

    ×

    Name

    Email address

    Comment

    Close

    Submit

    Not Comment!

    展开全文
  • 一、熵 (1)原理 初中物理我们对“熵”这个东西... 2、计算信息增益率 进步程度的信息增益率更高一些,所以在构建决策树的时候,优先选择通过这种方式,在选取节点的过程中,我们可以降低取值较多的属性的选取偏好。
  • 今天在课堂上给大家讲到信息熵、信息增益和信息增益率的时候,很多同学都不理解,对数学公式很敬畏,其实不然,接下来我就使用Python原生代码实现信息熵、信息增益、信息增益率计算!!! 1.信息熵: 1.1 信息熵...
  • 信息增益与信息增益率计算的Python实现 阅读本文前推荐先阅读:混杂度数值度量的Python编程实现 阅读本文前推荐先阅读:决策树算法中数据集的划分 导读:决策树是一种基于信息的学习算法。在决策树算法中需要不断地...
  • 信息熵、信息增益与信息增益率

    千次阅读 多人点赞 2019-05-10 11:16:41
    信息熵、信息增益与信息增益率信息熵、信息增益与信息增益率信息熵(Information Entropy)信息增益(Information Gain)信息增益率(Information Gain Ratio) 信息熵、信息增益与信息增益率 信息熵(Information Entropy)...
  • 信息增益率

    千次阅读 2019-07-05 17:41:13
    信息熵,条件熵,信息增益参考博文:https://blog.csdn.net/u010916338/article/details/91432832 如下表所示:满足什么情况才去玩高尔夫 ? Day Temperatrue Outlook Humidity Windy PlayGolf? ...
  • 信息增益 1.问题引入 首先,我们引入需进行学习的数据集,如下, 接着摆在我们面前的是首先选择哪个特征,其次选择哪个特征,…,最后选择哪个特征。(就是先选择好的特征,再选择坏的特征) 问题引入: 怎么知道...
  • 决策树——信息增益、信息增益率、基尼指数背景——信息量的表示信息熵信息增益增益率基尼系数 这是机器学习课上面教的几个概念,在这里记一下笔记,如果大家发现我的理解有误,请指正,谢谢。 背景——信息量的表示...
  • 【数据挖掘】信息增益计算

    千次阅读 2022-04-25 10:41:00
    二、如何计算信息增益三、习题❤️❤️❤️忙碌的敲代码也不要忘了浪漫鸭! 前言 ✨你好啊,我是“ 怪& ”,是一名在校大学生哦。 主页链接:怪&的个人博客主页 ☀️博文主更方向为:课程学习知识、作业...
  • 决策树算法中:信息熵、信息增益、信息增益率和基尼指数的计算 节选自周志华《机器学习》P75-P79页 文末附上本人手工计算过程,方便理解 ...
  • 1、ID3与C4.5采用信息熵作为选择的基础,CART选择基尼纯度作为选择的基础。 2、ID3和C4.5只用于分类,CART可以用于分类与回归。其中I 3、ID3和C4.5可以是多叉树,CART是二叉树。 4、ID3只能使用离散特征,C4.5和CART...
  • 熵 熵在信息论中被用来度量信息量,熵越大,所含的有用信息越多,其不确定性也就越大;熵越小,有用信息越少,确定性也就越大。 决策树中,用熵来表示样本集的不纯度...信息增益 计算得到熵作为衡量样本集合不纯度的指
  • (7)计算信息增益率 首先,分支度 则信息增益率 然后可进一步计算其他各字段的GR值,并选取GR值最大的字段进行切分。 2、连续变量处理手段 在C4.5中,同样还增加了针对连续变量的处理手段。如果输入特征字段是连续...
  • 信息增益、信息增益率、Gini

    千次阅读 2015-12-08 15:42:10
    1、 C4.5继承了ID3的优点,并改进了:(1)使用信息增益率来选择属性,克服了用信息增益选择属性时偏向值多的不足;(2)在构树过程中进行剪枝;(3)能够完成对连续属性的离散化处理;(4)能够对不完整数据进行...
  • python详细步骤计算信息增益

    万次阅读 多人点赞 2018-08-25 16:39:25
    信息增益(gain):表示得知特征X的信息使得类Y的信息不确定性减少的程度。例如属性a的信息增益为: 信息增益就是等于某个属性的熵减去该属性的条件信息熵。...#自定义一份数据,分别计算信息熵,...
  • 信息增益、Gini、信息增益率
  • 那么如果以ID为一个节点,那么最后的每个叶子节点中只有一个数据,那么每个叶子节点的熵值都为0,那么此时的信息增益将达到最大,但是这显然不是我们想要的分类结果,这样的分类结果就好像最终得到的每一个分类数据...
  • 决策树算法熵与信息增益(Python3实现)

    千次阅读 多人点赞 2018-07-17 17:30:49
    目录 1、熵、条件熵与信息增益 (1)熵(entropy) (2)条件熵(conditional entropy) (3)信息增益(information gain) ...信息增益比(增益率) 1、熵、条件熵与信息增益 (1)熵(entropy) (...
  • 1.决策树模型结构 决策树算法是一种监督学习算法;...(2)C4.5算法:使用信息增益率进行特征选择,克服了信息增益选择特征的时候偏向于特征个数较多的不足。 (3)CART算法:分类回归树,既可以用于分类,也可以用于...
  • 信息增益计算

    千次阅读 2018-06-01 11:04:56
    信息增益有的也成为信息获取量(Information Gain)。 这里主要介绍在决策树中的使用。...这里以特征A为例,特征A的信息增益计算方式如下: 计算整个信息(就是计算是否买电脑)的熵: Infor(D)=...
  • c4.5基于信息增益比的多分类决策树python实现,包含数据集,运行结果以字典的形式进行存储
  • 信息增益率:信息增益/属性的熵(偏向类别数目少的属性)4.基尼值:1-集和各类别值的概率平方和(随机抽取两个样本其类别不一致的概率) 1 - sum(pi**2)5.基尼系数:按照属性a划分后各子集的加权基尼和ID3:判别式...
  • 信息增益与信息增益率详解

    万次阅读 2015-03-17 23:45:17
    熟悉决策树算法的人都知道ID3以及C4.5两种算法,当然也非常清楚信息增益以及信息增益率两个概念。 信息增益:节点M的信息熵E1与其全部子节点信息熵之和E2的差。 信息增益率:节点信息增益与节点分裂信息度量的比值。...
  • 自己用Python3.6.1 写的基于信息增益的决策树,信息熵函数、信息增益函数、多数表决函数、产生决策树的函数写的都比较清楚,直接下载放在python环境中就能出结果,数据用的是周志华老师的《机器学习》的表4.3。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 22,714
精华内容 9,085
关键字:

如何计算信息增益率