信息增益 熵 信息增益率

机器学习---决策树的划分依据(熵、信息增益、信息增益率、基尼值和基尼指数) 当每⽀球队夺冠概率相等都是 1/16 的时侯,Ent(D) = -(16 * 1/16 * log1/16) = 4。假如有 16 ⽀球队,分别编号,先问是否在 1-8 之间,如果是就继续问是否在 1-4 之间, 以此类。从信息的完整性上进⾏的描述:当系统的有序状态⼀致时,数据越集中的地⽅熵值越⼩,数据。从信息的有序性上进⾏的描述:当数据量⼀致时,系统越有序,熵值越低;例子:假设我们没有看世界杯的⽐赛,但是想知道哪⽀球队会是冠军, 我们只能猜测某⽀球队是。其中:Ent(D) 的值越⼩,则 D 的纯度越⾼。 阅读详情

1、熵(Entropy)

理论上来说用于决策树的属性选择函数,为方便计算,往往是定义为其属性的不纯性度量,那么必须满足如下三个条件:

  • 当结点很纯时,其度量值应为0
  • 当不纯性最大时(比如所有类都有同样的可能),其度量值应最大
  • 度量应该服从多级特性,这样决策树才能分阶段建立起来
    measure([2,3,4])=measure([2,7])+79×measure([3,4])
     

而熵(Entropy)能够满足以上三点特性。熵(Entropy)是由“信息论之父”香农提出的,更多的各种历史、数学理论请查看参考[1]。接下来,看看熵的计算公式如下:

entropy(p1,p2,…,pn)=–p1log2(p1)–p2log2(p2)–…–pnlog2(pn)

其中, pi 为比例值。其实,熵也可以用另外一种意思来解释:

Given a probability distribution, the info required to predict an event is the distribution’s entropy. Entropy gives the information required in bits (this can involve fractions of bits!)

可以简单的理解为“熵”描述了用来预测的信息位数。接下来看个例子:

如下表所述的天气数据,学习目标是预测Play or not play?

表1 天气预报数据集例子

OutlookTemperatureHumidityWindyPlay?
sunnyhothighfalseno
sunnyhothightrueno
overcasthothighfalseyes
rainmildhighfalseyes
raincoolnormalfalseyes
raincoolnormaltrueno
overcastcoolnormaltrueyes
sunnymildhighfalseno
sunnycoolnormalfalseyes
rainmildnormalfalseyes
sunnymildnormaltrueyes
overcastmildhightrueyes
overcasthotnormalfalseyes
rainmildhightrueno

共14个实例,9个正例(yes),5个负例(no)。

这样当前数据的信息量(原始状态)用熵来计算就是:

info(play?)=info([9,5])=entropy(914,514)=–914log2(914)–514log2(514)=0.410+0.530=0.940

有了上面计算熵(信息)的基础,接下来看信息增益了。

 

2、信息增益(Info Gain)

信息增益,按名称来理解的话,就是前后信息的差值,在决策树分类问题中,即就是决策树在进行属性选择划分前和划分后的信息差值,即可以写成:

gain()=infobeforeSplit()–infoafterSplit()

如上面的例子,通过使用Outlook属性来划分成下图:


图1 使用Outlook属性划分决策树

在划分后,可以看到数据被分成三份,则各分支的信息计算如下:

info([2,3])=−25log2(25)–35log2(35)=0.971bits

info([4,0])=−44log2(44)–04log2(04)=0bits
,此处虽然 log2(0) 没有定义,但 0×log2(0) 仍然计算为0。

info([3,2])=−35log2(35)–25log2(25)=0.971bits

因此,划分后的信息总量应为:

info([2,3],[4,0],[3,2])=514×0.971+414×0+514×0.971=0.693bits

如果把上面的公式整理到一起的话,就是:

$$ info([2,3], [4,0], [3,2]) = \frac{5}{14}\times info([2,3]) + \frac{4}{14}\times info([4,0]) + \frac{5}{14}\times info([3,2])

= 0.347 + 0 + 0.347 = 0.694 bits $$

从上面可以看出,划分后的信息总量计算公式为:

info(S1,…,Sn)=∑in|Si||S|×entropy(Si)

其中,n表示划分后的分支数目, |S| 表示划分前的实例个数, |Si| 表示划分后某个分支的实例个数。

最后,信息增益

gain(outlook|play?)=infobeforeSplit()–infoafterSplit()=info(play?)–info([3,2],[4,0],[3,2])=0.940–0.694=0.246bits

通过划分其他属性,可得到其他的树如下:


图2 使用其他属性划分决策树

同样计算,

gain(Temperature|play?)=info([9,5])–info([2,2],[4,2],[3,1])=0.940–(414×info([2,2])+614×info([4,2])+414×info([3,1]))=0.028bits

gain(Humidity|play?)=0.152bits

gain(Windy|play?)=0.048bits

这样,算法会选择最大的信息增益属性来进行划分,在此处为Outlook属性。接下来在Outlook=sunny结点,按照同样的判断方法,选择其他属性进行划分,


图3 继续划分决策树

计算如下:

infobeforeSplit()=info([2,3])=0.971bits
2个正例,3个负例,计算其熵

gain(Temperature|Outlook,Play?)=0.571bits

gain(Humidity|Outlook,Play?)=0.971bits

gain(Winday|Outlook,Play?)=0.020bits

因而可以得到下一个划分结点是Humidity属性。在这里的Temperature有三个值,因而其info([2,2,1])使用简便方法计算为:

info([0,2],[1,1],[1,0])=25×info([0,2])+25×info([1,1])+15×info([1,0])=0.4bits

因此 gain(Temperature|Outlook,Play?)=0.971–0.4=0.571bits 。另外,由于要计算的是信息增益最大,在划分前信息总量 infobeforeSplit() 一定的情况下,我们完全可以直接求划分后信息量最小的特性即可。

 

3、信息增益率(Info Gain Ratio)

通过上面的例子,想必对于信息增益的计算步骤已经熟悉些了。那么下面来看信息增益存在的一个问题:假设某个属性存在大量的不同值,如ID编号(在上面例子中加一列为ID,编号为a~n),在划分时将每个值成为一个结点,这样就形成了下面的图:


图4 信息增益偏向

最终计算得到划分后的信息量为: info(S1,…,Sn)=∑ni=1|Si||S|×entropy(Si)=0 ,因为 entropy(Si)=info([1,0]) 或 info([0,1]) ,只含一个纯结点。这样决策树在选择属性时,将偏向于选择该属性,但这肯定是不正确(导致过拟合)的。因此有必要使用一种更好的方法,那就是C4.5中使用的信息增益率(Info Gain Ratio),其考虑了分支数量和尺寸的因素,使用称为内在信息(Intrinsic Information)的概念。

Gain ratio takes number and size of branches into account when choosing an attribute, and corrects the information gain by taking the intrinsic information of a split into account (i.e. how much info do we need to tell which branch an instance belongs to).

内在信息(Intrinsic Information),可简单地理解为表示信息分支所需要的信息量,其计算公式如下:

IntrinsicInfo(S,A)=−∑|Si||S|log2|Si||S|

则针对上图中的例子,

info([1,1,…,1])=14×(−114log2114)=3.807bits

信息增益率则计算如下:

gainratio(Attribute)=gain(Attribute)IntrinsicInfo(Attribute)

依然如上例:

gainratio(IDCode)=0.940bits3.807bits=0.246

实际上可以看出,属性的重要性会随着其内在信息(Intrinsic Information)的增大而减小。 信息增益率作为一种补偿(Compensate)措施来解决信息增益所存在的问题,但是它也有可能导致过分补偿,而选择那些内在信息很小的属性,这一点可以尝试:首先,仅考虑那些信息增益超过平均值的属性,其次再比较信息增益。

 

4、Gini Index

在CART里面划分决策树的条件是采用Gini Index,定义如下:

gini(T)=1−∑j=1np2j

其中, pj 是类j在T中的相对频率,当类在T中是倾斜的时,gini(T)会最小。

将T划分为T1(实例数为N1)和T2(实例数为N2)两个子集后,划分数据的Gini定义如下:

ginisplit(T)=N1Ngini(T1)+N2Ngini(T2)

然后选择其中最小的 ginisplit(T) 作为结点划分决策树。

 

5、参考

本文大量地参考了如下资料:

[1] http://en.wikipedia.org/wiki/Entropy (EN),http://zh.wikipedia.org/wiki/%E7%86%B5 (CN)

[2] Data Mining examples: www.liacs.nl/home/joost/DM/mod_06_dec_tree_intro.ppt

[3] Data Mining – Practical Machine Learning Tools and Techniques with Java

 

简单粗暴理解与实现机器学习之决策树算法(二): 决策树分类原理、熵、决策树的划分依据之信息增益and信息增益率and基尼值和基尼指数、常见决策树类型比较、cart剪枝(附手写笔记) 决策树算法    朴素贝叶斯要求特征相互独立,只能处理文本这种,更好的分类要用到决策树,决策树后面还有更更好的随机森林属于集成学习 可以解决很多的事情 文章目录决策树算法学完决策树算法,您应该掌握二、 决策树分类原理**重点**1 熵1.1 概念1.2 案例2 决策树的划分依据一------信息增益2.1 **概念**2.2 案例:3 决策树的划分依据二----信息增益率4 决策树的划分依据三——... 阅读详情

相关推荐

MWORKS 2025a电气模型库实战:手把手教你搭建全桥LLC电路(附避坑指南)

本文详细介绍了如何使用MWORKS 2025a电气模型库搭建全桥LLC电路,包括环境准备、电路拓扑构建、参数优化及故障诊断。通过实战案例和避坑指南,帮助电源工程师高效设计谐振转换器,提升转换效率至98%以上。文章特别强调了Modelica模型库在电气系统建模中的关键作用。

s8t9u0v1w的博客 603

信息增益,信息增益率,Gini

1、熵(Entropy) 理论上来说用于决策树的属性选择函数,为方便计算,往往是定义为其属性的不纯性度量,那么必须满足如下三个条件: 当结点很纯时,其度量值应为0 当不纯性最大时(比如所有类都有同样的可能),其度量值应最大 度量应该服从多级特性,这样决策树才能分阶段建立起来 measure([2,3,4])=measure([2,7])+79×measure([3,4])

Athenaer的专栏 2万+

ThingsBoard实战指南:RPC命令下发与设备交互详解

本文深入解析了ThingsBoard平台中RPC命令下发的核心机制与实战应用。通过对比客户端与服务端RPC模式,详细阐述了从仪表盘控件配置到设备端Python代码响应的完整双向交互流程,并提供了常见问题排查与进阶优化技巧,帮助开发者构建可靠、实时的物联网设备控制系统。

weixin_29168153的博客 213

信息熵、信息增益与信息增益率

信息熵和信息增益通俗解释

DawnChau 3万+

快速入门:使用 SQL Server Management Studio (SSMS) 连接和查询 SQL Server 实例

开始使用 SQL Server Management Studio (SSMS) 连接到 SQL Server 实例并运行一些 Transact-SQL (T-SQL) 命令。本文介绍如何连接和查询实例SQL Server。有关 Azure SQL,请参阅连接。若要使用,请参阅连接和查询。若要详细了解如何SQL Server Management Studio,请参阅其他。......

m0_72938729的博客 5729

从寄存器到驱动:深入解读RFSoC RF-ADC阈值与校准API的底层逻辑

本文深入解析Xilinx RFSoC中RF-ADC的阈值检测与校准API的底层逻辑,涵盖寄存器映射、驱动实现及Gen3增强功能。通过详细代码示例和寄存器操作流程,揭示如何精准控制信号阈值检测与校准时序,提升系统稳定性与性能。特别探讨RF数据转换器在无线通信和雷达信号处理中的关键应用。

weixin_30552811的博客 687

Python代码实现信息熵、信息增益、信息增益率的计算

今天在课堂上给大家讲到信息熵、信息增益和信息增益率的时候,很多同学都不理解,对数学公式很敬畏,其实不然,接下来我就使用Python原生代码实现信息熵、信息增益、信息增益率的计算!!! 1.信息熵: 1.1 信息熵简介及公式: > 1948年香农提出了信息熵(Entropy)的概念。 信息理论: 1、从信息的完整性上进行的描述: 当系统的有序状态一致时,数据越集中的地方熵值越小,数据越分散的地方熵值越大。 2、从信息的有序性上进行的描述: 当数据量一致时,系统越有序,熵值越低;系统越混乱或者分散,.

吉米_王 1万+

simulink中MIL测试简单理解

输入信号设置如下:选中New Test Case1 ---INPUT。5、新建(选择New,Test from Spreadsheet)6、可以新建也可以导入(Use existing test)Source:Output为自己预测结果。3、右键子系统(Create)打开生成表格,可以自己调试。4、创建测试用例表格。保存路径为模型路径。保存路径在模型路径。8、运行测试设h置。

lingdianhuat的博客 1784

[决策树]西瓜书中增益、增益比率以及基尼系数的计算

决策树:分裂(Splitting)、停止(Stopping)与剪枝(Pruning) 一、Splitting 问题: 怎样找到最好的分裂属性? 希望内在的节点有更高的纯度。 怎样去衡量纯度呢? 信息熵(Information entropy)是来评判采样D的纯度 Ent(D)Ent(D)Ent(D)的值越小表示纯度越高 当概率pkp_{k}pk​为111的时候,Ent(D)Ent(D)Ent(D)的值为000,也就是说全都是这种情况,纯度很高。 当概率pkp_{k}pk​为12

蛋总的快乐生活 4218

Spring AI 实战:第二章、Spring AI提示词之玩转AI占卜的艺术

引言:程序员的神秘学探索引言:程序员的神秘学探索“下个迭代能按时发布吗?“这次晋升机会有多大?“我写的代码为什么总在半夜出bug?作为一名开发者是否也曾被这些略带玄学问题困扰?那让我们用Spring AI和提示词工程打造一个专属于程序员的"赛博占卜师",让大师来为你占卜一卦吧~一、提示词工程 - 与AI对话的艺术1.1 提示词工程是什么类比一下,AI就像一位刚从名校毕业的高材生它知识渊博但缺乏经验能解决复杂问题但需要明确指引有时会"过度脑补"(专业术语叫"幻觉")

liaokailin的专栏 1850

信号完整性之串扰

1.前言 串扰(Crosstalk)是指信号线之间由互感、互容而引起的耦合,由于这种耦合的存在,当某一信号线发生电平翻转时,在附近的信号线上将感应到一定程度的噪声。 2. 电路设计中抑制串扰的方法 2.1 控制高速信号线之间的间距和平行走线的长度 多个高速信号长距离平行走线时,其间距应遵循3W原则,如下图所示: 3W原则指两相邻信号线的中心间距不少于信号线宽度的3倍,当满足3W原则时,信号线之间...

sinat_15677011的博客 1万+

熵、信息增益、信息增益率

一、熵 (1)原理 初中物理我们对“熵”这个东西懵懵懂懂,印象中仿佛对物体内部的热效应有关,时隔这么多年在机器学习、深度学习领域的学习中又看见了它的踪影,不免有点让人有点熟悉又陌生的感觉。“熵”这个东西看不见又摸不着,到底什么是“熵”? “熵”是用来干什么的?“熵”是一个系统里面的混乱程度的度量、标尺。系统混乱程度越低,系统的熵值越小,反之越大。 我们先从物理学的角度出发,假设相同条件下有一桶冰水和一桶热水,哪一个的熵值会大呢? 冰水中的分子热运动速度较慢,内部的分子排布比较有规律。热水内部温

qq_39197555的博客 1万+

骚戴笔记公告

骚戴笔记公告

我从不打没有准备的仗! 2万+

熵、信息增益、信息增益率与基尼指数

 本文主要介绍了熵,信息增益,信息增益率和基尼指数的基本概念,并使用数据样例进行了计算。 数据样例 名称 是否用鳃呼吸 有无鱼鳍 是否为鱼 鲨鱼 是 有 是 鲫鱼 是 有 是 河蚌 是 无 否 鲸 否 有 否 海豚 否 有 否 熵  熵是度量样本集合纯度最常用的...

知道不_zkl的博客 4538

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

基尼系数、熵、信息增益、信息增益率

熵 熵是事件不确定性的度量,如果事件无不确定性,则熵为0,不确定性越大,熵越大 条件熵 在一个条件下,随机变量的不确定性 信息增益 信息增益 = 熵 - 条件熵 表示在一个条件下,信息不确定性减少的程度 缺点:信息增益偏向取值较多的特征 信息增益率 本质:是在信息增益的基础之上乘上一个惩罚参数。特征个数较多时,惩罚参数较小;特征个数较少时,惩罚参数较大。 惩罚参数:数据集D以特征A作为随机变量的熵的倒数,即:将特征A取值相同的样本划分到同一个子集中 缺点:信息增益比偏向取值较少的特征 原因:

真心乖宝宝的博客 1189

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

熵,信息增益,信息增益率,Gini

话说今天《机器学习》上课被很深地打击了,标名为“数据挖掘”专业的我居然连个信息增益的例子都没能算正确。唉,自看书以来,这个地方就一直没有去推算过,每每看到决策树时看完Entropy就直接跳过后面增益计算了。因而,总想找个时间再回过来好好看一下,这不,被逼上了呢。神奇的墨菲定律呢:你担心它发生的,它就一定会发生。 回正题了,这三个指标均是决策树用来划分属性的时候用到的,其中信息增益(Info

冰枫的随笔 1万+

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

熵 信息增益 信息增益率

信息增益原理介绍 介绍信息增益之前,首先需要介绍一下熵的概念,这是一个物理学概念,表示“一个系统的混乱程度”。系统的不确定性越高,熵就越大。假设集合中的变量X={x1,x2…xn},它对应在集合的概率分别是P={p1,p2…pn}。那么这个集合的熵表示为: 举一个的例子:对游戏活跃用户进行分层,分为高活跃、中活跃、低活跃,游戏A按照这个方式划分,用户比例分别为20%,30%,50%。游戏B按照这...

weixin_43138233的博客 307

熵,信息增益,信息增益率,基尼指数(附案例)

熵(Entropy) 是度量样本集合纯度最常用的一种指标。 ID3决策树算法就是利用信息增益作为划分数据集的一种方法。 ID3的后继C4.5使用一种称为增益率(Gain Ratio) 的信息增益扩充。 CART中采用基尼指数来进行特征选择。

迷雾总会解 3333

机器学习---熵,信息增益,信息增益率

熵 熵在信息论中被用来度量信息量,熵越大,所含的有用信息越多,其不确定性也就越大;熵越小,有用信息越少,确定性也就越大。 决策树中,用熵来表示样本集的不纯度,样本集中样本种类越小,确定性越高,熵值越小;样本种类越多,越不确定,熵值越大。 熵例子 设S是数量为n的样本集,其分类属性有n个不同的取值,用来定义m个不同的分类Ci(i=1,2,⋯,m),则其熵的公式是: 如果有一个大小为10的布尔值样本集Sb,其中有6个真值,4个假值,那么该布尔型样本分类的熵是: 信息增益 计算得到熵作为衡量样本集合不纯度的指

weixin_43854256的博客 2817

信息增益 matlab,熵,信息增益,信息增益率,Gini

文章来源:http://blog.youkuaiyun.com/cyningsun/article/details/8735169话说今天《机器学习》上课被很深地打击了,标名为“数据挖掘”专业的我居然连个信息增益的例子都没能算正确。唉,自看书以来,这个地方就一直没有去推算过,每每看到决策树时看完Entropy就直接跳过后面增益计算了。因而,总想找个时间再回过来好好看一下,这不,被逼上了呢。神奇的墨菲定律呢:你...

weixin_29479863的博客 683

【机器学习|学习笔记】决策树中的熵 (Entropy)、信息增益 (Information Gain) 和信息增益率 (Information Gain Ratio)详解。

【机器学习|学习笔记】决策树中的熵 (Entropy)、信息增益 (Information Gain) 和信息增益率 (Information Gain Ratio)详解。

2401_89898861的博客 1061

决策树原理(决策树算法概述,熵,信息增益,信息增益率,gini系数,剪枝,回归、分类任务解决)

本文需要了解树这一数据结构的基础知识。决策树:如下图所示从根节点开始一步步走到叶子节点(决策)所有的数据最终都会落到叶子节点有监督学习提个问题: 怎样做分类?怎么做回归?每一个条件都可以当作一个特征,根据特征判断。那么提出一个问题:条件1和条件2的位置是否可以对调,或者凭什么条件1当作根节点?就像NBA球队,有首发,有替补。根据什么度量?那么就让给我们继续看下去吧。

JamesSwifte的博客 1974

决策树算法---简介、分类原理(熵、信息增益、信息增益率、基尼值和基尼指数)、决策树构建基本步骤

文章目录一、简介二、决策树分类原理1.熵2.决策树的划分依据一------信息增益3. 决策树的划分依据二----信息增益率4.决策树的划分依据三——基尼值和基尼指数5. 决策树构建的基本步骤如下:6.总结 常见决策树类型比较6.1 ID3 算法6.2 C4.5算法6.3 CART算法 一、简介 决策树:是一种树形结构,其中每个内部节点表示一个属性上的判断,每个分支代表一个判断结果的输出,最后每个叶节点代表一种分类结果,本质是一颗由多个判断节点组成的树。 二、决策树分类原理 1.熵 熵 是指混乱程度(虽

alovelypeach的博客 1632

最大信息熵增益_一文读懂决策树(上)——信息增益、信息增益率、Gini系数...

信息论是决策树的数学基础。上篇先详细的讲解信息论的理论基础。熵熵描述事件的不确定性,单位是bit。如果某个事件有 n 个结果,每个结果的概率为 pn。那么这个事件的熵 H(p) 的定义为:举个例子。大学期末的数学考试有单选题和多选题。对于一个完全没有学习过的学生,分别来做两种题型。假设做单项选择题,4个选项是正确选项的概率都是1/4。那么单项选择题的答案的熵就是,-0.25*log0.25-0.2...

weixin_36145011的博客 901

决策树的信息增益率解决的信息增益熵的bug

这个例子是李航博士统计统计学习方法的例子,博客的内容是按照自己的理解做一个计算的过程的记录。 贷款申请样本数据表 ID 年龄 有工作 有自己的房子 信贷情况 类别 1 青年 否 否 一般 否 2 青年 否 否 好 否 3 青年 是 否 好 是 4 青年 ...

Chen_Meng_的博客 639
上一篇: <<C 专家编程>>之内存管理 brk sbrk
下一篇: 决策树 ID3 实现 真正的大牛
crazy_programmer_p
博客等级 码龄12年 21粉丝 23原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值