• 决策树算法


    学习了一下决策树算法(ID3)。

    基本的理论知识:

    信息熵:信息理论的鼻祖之一Claude E. Shannon(香农)把信息(熵)定义为离散随机事件的出现概率。一般而言,当一种信息出现概率更高的时候,表明它被传播得更广泛,或者说,被引用的程度更高。我们可以认为,从信息传播的角度来看,信息熵可以表示信息的价值。这样子我们就有一个衡量信息价值高低的标准,可以做出关于知识流通问题的更多推论。

    计算公式

    H(x) = E[I(xi)] = E[ log(2,1/p(xi)) ] = -∑p(xi)log(2,p(xi)) (i=1,2,..n)

    如果抛一个硬币,我们可以计算出-0.5log2 0.5 - 0.5log2 0.5 = 1。我们就可以用1个比特来表示结果。或者有32个球队,赢球的概率相同,那么信息熵为5,我们需要5比特来表示结果

     

    ID3的核心思想是:在决策树各节点上选择属性时,通过计算信息增益来选择信息熵。怎么选择呢,说白了就是如果一个信息熵很低,那么代表的就是确定度越高。如果一个硬币每次都是正面那直接选择正面啊。哈哈。

    所以我们怎么来选择哪一个分类属性呢,看用哪一个分类属性会使信息熵变低,不确定度减小。哈哈。

     

    ID3算法描述

    输入:样本集合S,属性集合A
        输出:id3决策树。
        1) 若所有种类的属性都处理完毕,返回;否则执行2)
        2)计算出信息增益最大属性a,把该属性作为一个节点。
            如果仅凭属性a就可以对样本分类,则返回;否则执行3)
        3)对属性a的每个可能的取值v,执行一下操作:
            i.  将所有属性a的值是v的样本作为S的一个子集Sv;
            ii. 生成属性集合AT=A-{a};
            iii.以样本集合Sv和属性集合AT为输入,递归执行id3算法;

    下面给出几个用到的公式。

    信息增益公式:

    Gain(X,T) =INFO(T) – INFO(X,T)

    Gain(X,T):选用X属性分类的得到的信息增益。

    INFO(T) :总的信息熵。

    INFO(X,T):用X分类的信息熵。    

    实例分析:

        这个例子来源于Quinlan的论文。
        假设,有种户外活动。该活动能否正常进行与各种天气因素有关。
        不同的天气因素组合会产生两种后果,也就是分成2类:能进行活动或不能。
        我们用P表示该活动可以进行,N表示该活动无法进行。
        下表描述样本集合是不同天气因素对该活动的影响。
                         Attribute                       class
        outlook    temperature    humidity    windy
        ---------------------------------------------------------
        sunny       hot             high           false       N
        sunny       hot             high           true         N
        overcast   hot             high           false       P
        rain           mild           high           false       P
        rain           cool           normal      false       P
        rain           cool           normal      true         N
        overcast   cool           normal      true         P
        sunn y      mild           high           false       N
        sunny       cool           normal      false       P
        rain           mild           normal      false       P
        sunny       mild           normal      true         P
        overcast   mild           high           true         P
        overcast   hot             normal      false       P
        rain           mild           high           true        N
        3.2
        该活动无法进行的概率是:5/14
        该活动可以进行的概率是:9/14
        因此样本集合的信息熵是:-5/14log(5/14) - 9/14log(9/14) = 0.940
        3.3
        接下来我们再看属性outlook信息熵的计算:
        outlook为sunny时,
        该活动无法进行的概率是:3/5
        该活动可以进行的概率是:2/5
        因此sunny的信息熵是:-3/5log(3/5) - 2/5log(2/5) = 0.971
        同理可以计算outlook属性取其他值时候的信息熵:
        outlook为overcast时的信息熵:0
        outlook为rain时的信息熵:0.971
        属性outlook的信息增益:gain(outlook) = 0.940 - (5/14*0.971 + 4/14*0 + 5/14*0.971) = 0.246
        相似的方法可以计算其他属性的信息增益:
        gain(temperature) = 0.029
        gain(humidity) = 0.151
        gain(windy) = 0.048
        信息增益最大的属性是outlook。

  • 相关阅读:
    《代码大全2》读书笔记(三)
    软工第一次作业 进度记录三 简单的性能分析
    软工第一次作业 进度记录2
    WordPress发布文章前强制要求上传特色图像
    自定义php(NON-CORE WORDPRESS FILE) 引用 wordpress
    php 利用header 函数 下载各种文件
    apache php配置 虚拟目录 和 虚拟主机 多域名配置 原理解析
    JS 动态加载脚本 执行回调
    php 文件上传
    wordpress 插件 汉化
  • 原文地址:https://www.cnblogs.com/xiaokangzi/p/3581068.html
Copyright © 2020-2023  润新知