zoukankan      html  css  js  c++  java
  • 信息增益(IG,Information Gain)的理解和计算

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

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

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

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

    分类系统里面无非是样本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。当然,很少会有这么管用的特征,所以就比较信息增益大的特征,用来特征选择。

  • 相关阅读:
    2013上半年中国CRM市场分析报告
    windows运行命令大全
    JVM探索(二)
    JVM探索(一)
    1.数据结构和算法的基础笔记
    java程序性能优化
    http状态码
    mongodb清洗数据
    List的数据结构
    Foundation Data Structure
  • 原文地址:https://www.cnblogs.com/ransw/p/4137526.html
Copyright © 2011-2022 走看看