• 机器学习-2 决策树


    一、例子:

      用年龄、收入、是否学生、信用度高低来判断是否购买电脑为例子:

      

    二、根节点的选择

      信息:如果待分类的事物可能划分在多个类之中,则符号xi的信息定义为:

            

      上例中,买电脑的概率为9/14,那么yes的信息为:

            

      同理,no的信息为:

            

      信息熵:即信息期望值。公式如下:

            

      即:

             

      在决策树ID3算法中,选择使用信息获取量(Information Gain)作为节点选择的依据,也叫类与特征的互信息(D与A的互信息):

             

      在上面我们已经求得了H(D)(即上面的Info(D)),H(D|A)代表的是在A的情况下D的信息熵。

              

      例如例子中的H(buy computer | age),计算如下:

            

      所以,g(buy computer, age) = 0.940-0.694 = 0.246 bits

      类似的,可以求得income,student,credit_rating的信息获取量分别是:

      g(buy computer, income) = 0.029 bits

      g(buy computer, student) = 0.151 bits

      g(buy computer, credit_rating) = 0.048 bits

      去其中最大值作为根节点,即age作为分类根节点

    三、计算后续节点

      在选择好根节点后,我们将训练集按age划分,并将age属性从训练集中剔除,得到以下三个列表:

      

      我们按选择根节点时计算信息获取量的方法,作用于每个分支的子数据集。从而可以选择第二层的分类节点。

    四、处理连续值

      当数据中有连续型数据,例如age数据并不是youth、middle_aged、senior,而是具体的岁数。

      我们需要将连续型数据进行预处理,将其进行阈值划分,例如1-25为youth,26-50为middle_aged,51-100为senior。

    五、划分结束条件

    • 给定节点的所有样本属于同一类。例如age划分后的middle_aged。
    • 没有剩余属性可以用来进一步划分样本。在此情况下,使用多数表决的方法。

      如何避免overfitting:

        当决策树层数过多时,可能因为划分太细而导致过拟合(overfitting),这是可以采取修建枝叶的方法来避免。

        1.先剪枝:在生成决策树的过程中,当类别占比达到一定程度时不再往下细分。

        2.后剪枝:在决策树完全创建后,再根据一些规则来对枝叶进行修剪。 

    六、其他的决策树算法

      C4.5算法。

      CART算法:Classification and Regression Trees。

      共同点:都是贪心算法,自上而下(Top-down approach)。

      区别:属性选择度量方法不同,例如C4.5采用gain ratio,CART采用gini index,ID3采用Information Gain。

    七、决策树的优点和缺点

      优点:直观,便于理解,小规模数据集有效。

      缺点:处理连续变量不是很好,类别较多时,错误增加的比较快,可规模性一般。

  • 相关阅读:
    滚轮事件
    键盘事件
    运动(学习)
    事件(没有尽头的待完善)
    js 盒子模型(没写完)
    Number 数字相关的方法, 强制 、隐式类型转换 、进制之间转换
    操作DOM 和 节点
    DOM
    Object 的一些静态方法 、 for-in 循环、Object.keys() 、Object.values()、Object.entries()
    删除字段
  • 原文地址:https://www.cnblogs.com/leokale-zz/p/10330872.html
Copyright © 2020-2023  润新知