决策树构建中节点的选择靠的就是信息增益了。

信息增益是一种有效的特征选择方法,理解起来很简单:增益嘛,肯定是有无这个特征对分类问题的影响的大小,这个特征存在的话,会对分类系统带来多少信息量,缺了他行不行?

既然是个增益,就是个差了,减法计算一下,谁减去谁呢?

这里就用到了信息熵的概念,放到分类系统里面,信息熵如何计算呢?

分类系统里面无非是样本xi以及样本的分类结果yi,假设这个分类系统有k类,那么作为训练集来说,分类情况基本就定了,是按照样本的各个特征定的。那么在这些样本的信息的前提下,分类器有个结果,就自然包含了一种信息量在里面,可以用信息熵E(S)计算出来。

当然大家都知道熵表达的是不确定度,分布约均匀,越不确定,熵越大。

那么当把特征f引入的时候,会不会对系统的信息量有所影响呢?也就引入f之后的系统不确定度E(S|f)是多少呢?其实是个条件熵。也就是加入条件f之后,不确定度减少了多少?信息熵的有效减少量是多少?

为了计算条件熵,我们可以固定f的值,也就是根据f在训练集中呈现的值,计算条件熵E(S|f)。简单的说就是,把根据f划分的各个小系统的信息熵加权求和,权重就是各个小系统占系统S的比例(假设f有两个值0、1,选0的时候有a个样本,样本当然有类别y;f是1的时候有b个样本;a+b=n(样本总数);那么权重就是a/n和b/n了;每个小系统的信息当然跟大系统求法一样了)。

那么增益IG(f)=E(S)-E(S|f).

选择  f*=argmax(IG(f))的f作为第一个根节点,然后递归下去吧。

-----------

关于信息增益进行特征选择的问题,拿c类分类问题再理解下,如果一个特征都不参考,那么每个样本属于每个类的概率当然是1/c,此时整个系统的信息熵是最大的logc,一个极端的情况,加入特征A后,那么很明确的就将每个样本分到某个类别中去了,概率分布(1,0,0,0....),是c维的。

那么此时整个系统的信息熵是不是就是最小的0了,此时加入A后的信息增益为1-0=1。当然,很少会有这么管用的特征,所以就比较信息增益大的特征,用来特征选择。

信息增益(IG,Information Gain)的理解和计算的更多相关文章

  1. 通俗易懂的信息熵与信息增益(IE, Information Entropy; IG, Information Gain)

    信息熵与信息增益(IE, Information Entropy; IG, Information Gain) 信息增益是机器学习中特征选择的关键指标,而学习信息增益前,需要先了解信息熵和条件熵这两个 ...

  2. 信息增益(Information Gain)(转)

    当我们需要对一个随机事件的概率分布进行预测时,我们的预测应当满足全部已知的条件,而对未知的情况不要做任何主观假设.在这种情况下,概率分布最均匀,预测的风险最小.因为这时概率分布的信息熵最大,所以称之为 ...

  3. Theoretical comparison between the Gini Index and Information Gain criteria

    Knowledge Discovery in Databases (KDD) is an active and important research area with the promise for ...

  4. 理解MapReduce计算构架

    用Python编写WordCount程序任务 程序 WordCount 输入 一个包含大量单词的文本文件 输出 文件中每个单词及其出现次数(频数),并按照单词字母顺序排序,每个单词和其频数占一行,单词 ...

  5. gain 基尼系数

    转至:http://blog.csdn.net/bitcarmanlee/article/details/51488204 在信息论与概率统计学中,熵(entropy)是一个很重要的概念.在机器学习与 ...

  6. 基于IG的特征评分方法

    本文简单介绍了熵.信息增益的概念,以及如何使用信息增益对监督学习的训练样本进行评估,评估每个字段的信息量. 1.熵的介绍       在信息论里面,熵是对不确定性的测量.通俗来讲,熵就是衡量随机变量随 ...

  7. 【PRML读书笔记-Chapter1-Introduction】1.6 Information Theory

    熵 给定一个离散变量,我们观察它的每一个取值所包含的信息量的大小,因此,我们用来表示信息量的大小,概率分布为.当p(x)=1时,说明这个事件一定会发生,因此,它带给我的信息为0.(因为一定会发生,毫无 ...

  8. 决策树算法之ID3与C4.5的理解与实现

    github:代码实现 本文算法均使用python3实现 1. 决策树   决策树(decision tree)是一种基本的分类与回归方法(本文主要是描述分类方法),是基于树结构进行决策的,可以将其认 ...

  9. python 3计算KL散度(KL Divergence)

    KL DivergenceKL( Kullback–Leibler) Divergence中文译作KL散度,从信息论角度来讲,这个指标就是信息增益(Information Gain)或相对熵(Rela ...

随机推荐

  1. centos7 install jdk

    setp1: remove default java [lhs@localhost soft]$ rpm -qa | grep javajava-1.7.0-openjdk-1.7.0.75-2.5. ...

  2. Linux Weblogic 数据源 TimesTen配置

    [wzh@localhost middleware]$ vi wlserver_10.3/common/bin/commEnv.sh [Linux] LD_LIBRARY_PATH=${PATCH_L ...

  3. ROHS無鉛問題解答!ROHS IPC SGS

    無鉛smt(smd)問題1. 問Maxim關于無鉛的定義是什么?答無鉛表示在封裝或產品制造中不含鉛(化學符號為Pb).IC封裝中,Pb在外部引腳拋光或電鍍中很常見.對于晶片級封裝(UCSP和倒裝芯片) ...

  4. sql server 2005中使用with实现递归

    WITH fw_requestion_note_temp(old_apply_id) AS ( --取根节点放入临时表 SELECT old_apply_id FROM fw_requestion_n ...

  5. 【HDOJ】1547 Bubble Shooter

    两次BFS,一次扫描关联点.一次扫描可能掉落的情况(即再次扫描所有非爆炸的联通点).余下未被扫描的点均爆炸. #include <cstdio> #include <cstring& ...

  6. Linux下的库操作工具-nm、ar、ldd、ldconfig和ld.so

    Linux下的库操作工具-nm.ar.ldd.ldconfig和ld.so .nm [options] file 列出file中的所有符号 [option] -c 将符号转化为用户级的名字 -s 当用 ...

  7. HDU4536 XCOM Enemy Unknown(dfs)

    题目链接. 分析: 用dfs枚举每一波攻击的三个国家. 很暴力,但没想到0ms. #include <iostream> #include <cstdio> #include ...

  8. 【动态规划】XMU 1583 Sequence

    题目链接: http://acm.xmu.edu.cn/JudgeOnline/problem.php?id=1583 题目大意: T组数据,对于n(n<=6000)给定序列Xn(Xn<= ...

  9. cppunit官方文档浅析

    使用doxygen生成官方文档 cppunit使用了doxygen作为它的文档建设工具,所以我们要找的“官方文档”,其实就在cppunit的代码里面. 请先参考博文<下载doxygen>( ...

  10. 微软 Microsoft

    微软(Microsoft Corporation) (NASDAQ:MSFT,港交所:4338),是一家基于美国的跨国电脑科技公司,是世界PC(Personal Computer,个人计算机)机软件开 ...