信息增益,信息增益率,Gini
1、熵(Entropy)
理论上来说用于决策树的属性选择函数,为方便计算,往往是定义为其属性的不纯性度量,那么必须满足如下三个条件:
- 当结点很纯时,其度量值应为0
- 当不纯性最大时(比如所有类都有同样的可能),其度量值应最大
- 度量应该服从多级特性,这样决策树才能分阶段建立起来
measure([2,3,4])=measure([2,7])+79×measure([3,4])
而熵(Entropy)能够满足以上三点特性。熵(Entropy)是由“信息论之父”香农提出的,更多的各种历史、数学理论请查看参考[1]。接下来,看看熵的计算公式如下:
其中, 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 天气预报数据集例子
Outlook | Temperature | Humidity | Windy | Play? |
sunny | hot | high | false | no |
sunny | hot | high | true | no |
overcast | hot | high | false | yes |
rain | mild | high | false | yes |
rain | cool | normal | false | yes |
rain | cool | normal | true | no |
overcast | cool | normal | true | yes |
sunny | mild | high | false | no |
sunny | cool | normal | false | yes |
rain | mild | normal | false | yes |
sunny | mild | normal | true | yes |
overcast | mild | high | true | yes |
overcast | hot | normal | false | yes |
rain | mild | high | true | no |
共14个实例,9个正例(yes),5个负例(no)。
这样当前数据的信息量(原始状态)用熵来计算就是:
有了上面计算熵(信息)的基础,接下来看信息增益了。
2、信息增益(Info Gain)
信息增益,按名称来理解的话,就是前后信息的差值,在决策树分类问题中,即就是决策树在进行属性选择划分前和划分后的信息差值,即可以写成:
如上面的例子,通过使用Outlook属性来划分成下图:
图1 使用Outlook属性划分决策树
在划分后,可以看到数据被分成三份,则各分支的信息计算如下:
,此处虽然 log2(0) 没有定义,但 0×log2(0) 仍然计算为0。
因此,划分后的信息总量应为:
如果把上面的公式整理到一起的话,就是:
$$ 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 $$
从上面可以看出,划分后的信息总量计算公式为:
其中,n表示划分后的分支数目, |S| 表示划分前的实例个数, |Si| 表示划分后某个分支的实例个数。
最后,信息增益
通过划分其他属性,可得到其他的树如下:
图2 使用其他属性划分决策树
同样计算,
这样,算法会选择最大的信息增益属性来进行划分,在此处为Outlook属性。接下来在Outlook=sunny结点,按照同样的判断方法,选择其他属性进行划分,
图3 继续划分决策树
计算如下:
2个正例,3个负例,计算其熵
因而可以得到下一个划分结点是Humidity属性。在这里的Temperature有三个值,因而其info([2,2,1])使用简便方法计算为:
因此 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),可简单地理解为表示信息分支所需要的信息量,其计算公式如下:
则针对上图中的例子,
信息增益率则计算如下:
依然如上例:
实际上可以看出,属性的重要性会随着其内在信息(Intrinsic Information)的增大而减小。 信息增益率作为一种补偿(Compensate)措施来解决信息增益所存在的问题,但是它也有可能导致过分补偿,而选择那些内在信息很小的属性,这一点可以尝试:首先,仅考虑那些信息增益超过平均值的属性,其次再比较信息增益。
4、Gini Index
在CART里面划分决策树的条件是采用Gini Index,定义如下:
其中, pj 是类j在T中的相对频率,当类在T中是倾斜的时,gini(T)会最小。
将T划分为T1(实例数为N1)和T2(实例数为N2)两个子集后,划分数据的Gini定义如下:
然后选择其中最小的 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
内容写了这么多,就到此为止吧,要不然就没完没了了,下一步考虑分析Weka中的信息增益(weka.attributeSelection.InfoGainAttributeEval)以及信息增益率(weka.attributeSelection.GainRatioAttributeEval)的实现。错误之处,欢迎指正!
信息增益,信息增益率,Gini相关推荐
- 一文理清楚:熵,条件熵,KL散度(相对熵),交叉熵,联合熵,信息增益,信息增益比,GINI系数
熵 熵是表示随机变量不确定性的度量. 设 X X X是一个有N个取值有限的随机变量,其概率分布为: P ( X = i ) = p i , i = 1 , 2... N P(X=i)=p_i , i= ...
- 决策树 信息熵 条件熵 基尼系数 信息增益 信息增益率 CART 随机森林
决策树: 决策树是一种树形结构,树内部每个节点表示一个属性上的测试,每个分支代表一个测试输出,每个叶子节点代表一个分类类别.通过训练数据构建决策树,可以对未知数据进行分类, 上面的决策树深度depth ...
- 决策树信息增益|信息增益比率|基尼指数实例
今天以周志华老师的西瓜为例,复盘一下三种决策树算法. 文章目录 信息增益(ID3算法) 信息增益比率(C4.5算法) 基尼指数(CART算法) 数据: 信息增益(ID3算法) 信息熵表示信息的混乱程度 ...
- 数据挖掘中的数据分类
分类.决策树与模型评估 分类 决策树 分类算法 分类 分类就是通过学习一个目标函数F,把每个属性集x映射到一个预先定义好的类标号y上.目标函数也被称为分类模型. 建模分为两种目的,一种是描述性建模一种 ...
- 机器学习-有监督学习-分类算法:决策树算法【CART树:分类树(基于信息熵;分类依据:信息增益、信息增益率、基尼系数)、回归树(基于均方误差)】【损失函数:叶节点信息熵和】【对特征具有很好的分析能力】
一.决策树概述 注:生产实践中,不使用决策树,太简单,而是使用决策树的升级版:集成学习算法. 集成学习算法有: Random Forest(随机森林) Extremely Randomized For ...
- AI基础:信息熵、信息增益、信息增益率、基尼指数
给实习生聊到决策树.GBDT,有几个概念这里再用易懂的方式解释下 文章目录 信息熵 条件熵 信息增益 信息增益率 基尼指数 信息熵是决策树的基础 信息增益-ID3算法构建决策树 信息增益率-C4.5算 ...
- 信息熵、gini、信息增益
样本集合的不确定性描述:信息熵.gini 信息熵在x=1处一阶泰勒展开就是基尼指数 熵 gini f(x)=lnx=ln[1+(x-1)]=(x-1)-1/2(x-1)^2+1/3(x-1)^3-1/ ...
- 信息增益率C语言,决策树算法在高职院校成绩分析中的应用研究的论文
决策树算法在高职院校成绩分析中的应用研究的论文 摘 要:高职院校的学生的成绩是一项重要的数据,它不仅是对学生学习情况的评价,也是对教师教学质量的检查.本文研究了使用决策树算法对学生的成绩进行挖掘分析, ...
- 12_信息熵,信息熵公式,信息增益,决策树、常见决策树使用的算法、决策树的流程、决策树API、决策树案例、随机森林、随机森林的构建过程、随机森林API、随机森林的优缺点、随机森林案例
1 信息熵 以下来自:https://www.zhihu.com/question/22178202/answer/161732605 1.2 信息熵的公式 先抛出信息熵公式如下: 1.2 信息熵 信 ...
- 决策树--信息增益、信息增益比、Geni指数的理解
决策树 是表示基于特征对实例进行分类的树形结构 从给定的训练数据集中,依据特征选择的准则,递归的选择最优划分特征,并根据此特征将训练数据进行分割,使得各子数据集有一个最好的分类的过程. 决策树算法3要 ...
最新文章
- python label怎么用_python tkinter label标签怎么使用?
- [bzoj2301][HAOI2011]Problem b
- python—迭代器
- boost使用学习总结
- 过程改进建设中的常见奖励措施
- 【JavaScript脚本】——T1基本语法
- ubuntu16.04禁用触摸板
- Ubuntu apt upgrade后黑屏问题
- tensorflow 多人_使用TensorFlow2.x进行实时多人2D姿势估计
- jrockit_JRockit – JRCMD有用的命令
- Django框架 day02
- maven error: element dependency can not have character children
- hnu暑期实训之487-3279 字符串处理
- 暴力猴加脚本的适当应用
- 【持续更新】总结国内外图形学物理模拟相关学者和网站
- 前端主流IDE快捷语法
- 微信开发之测试号申请
- 微信公共平台开发接口(一)
- webshell、木马与后门之间的区别
- 使用纯CSS3实现一个3D旋转的书本
热门文章
- #include ““和#include <>区别
- 未来哪些职业最有可能被人工智能替代
- 计算机考研要考科目,2022考研:计算机专业需要准备哪些科目?
- Android9.0对非 SDK 接口的限制
- CGLIB介绍与原理
- CC00055.hadoop——|HadoopMapReduce.V27|——|Hadoop.v27|源码剖析|DataNode启动流程|
- javaweb项目开发案例
- Java生成微信群组图标
- “没有40K当什么程序员?”
- cad捕捉不到标注线上的点_CAD捕捉不到正在绘制的多段线上的点怎么办