• ID3算法(1)


      1 简述

    1.1
        id3是一种基于决策树的分类算法,由J.Ross Quinlan
    在1986年开发。id3根据信息增益,运用自顶向下的贪心策略
    建立决策树。信息增益用于度量某个属性对样本集合分类的好坏程度。
    由于采用了信息增益,id3算法建立的决策树规模比较小,
    查询速度快。id3算法的改进是C4.5算法,C4.5算法可以
    处理连续数据,采用信息增益率,而不是信息增益。
    理解信息增益,需要先看一下信息熵。

    1.2 信息熵
        信息熵是随机变量的期望。度量信息的不确定程度。
    信息的熵越大,信息就越不容易搞清楚。处理信息就是
    为了把信息搞清楚,就是熵减少的过程。
        Entropy(X) = -Sum(p(xi) * log(p(xi))) {i: 0 <= i <= n}
        p(x)是概率密度函数;对数是以2为底;

    1.3 信息增益
        用于度量属性A降低样本集合X熵的贡献大小。信息增益
    越大,越适于对X分类。
        Gain(A, X) = Entropy(X) - Sum(|Xv| / |X| * Entropy(Xv))  {v: A的所有可能值}
        Xv表示A中所有为v的值;|Xv|表示A中所有为v的值的数量;

    2 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算法;

    3 一个的例子
        3.1
        这个例子来源于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。

        3.4
        根据outlook把样本分成3个子集,然后把这3个子集和余下的属性
        作为输入递归执行算法。

    原文链接:http://blog.csdn.net/leeshuheng/article/details/7777722

  • 相关阅读:
    软件工程 2+ 自动生成四则运算题 测试版
    面向对象 (5)计算柱体体积可换底
    面向对象 (4)正方形的周长和面积
    软件工程 3.关于软件质量保障初探
    面向对象 (3)四棱柱的体积与数的判断
    面向对象 (1)矩形的面积和周长
    面向对象 (2)n的阶乘与两点距离
    软件工程 2.20194650 自动生成四则运算题第一版报告
    软件工程 1.《现代软件工程—构建之法》-概论(精读一章有感+练习与讨论部分)
    第四次博客作业-结对项目
  • 原文地址:https://www.cnblogs.com/onemorepoint/p/6761778.html
Copyright © 2020-2023  润新知