zoukankan      html  css  js  c++  java
  • 决策树补充

    上一篇:https://www.cnblogs.com/pylblog/p/8370980.html

    类型 属性1 属性2 属性3 属性4
    A 3 2 1 1
    A 1 2 1 2
    A 1 2 3 3
    B 2 2 1 1
    B 2 2 2 1
    B 2 1 2 2
    B 1 1 3 2
    B 1 1 3 3

     

     

     

     

     

     

     

    上面每个属性,都是枚举的

    上面每个属性,有可以按下面的树来表达:

    假如有一个最好的分类方法,那一定是立即根据不同的值,将AB分成两组。

    所以,对于哪一个属性分类的能力高低,可以用有多少个样本,位于同质子集中衡量。

    如:

    属性1得分为 3 + 1 = 4

    属性2得分为3

    属性3得分为2

    属性4得分为0

    从而,可以构建树:

    但是,如果按上面这样,一次就想试图将树建出来,去到后面得分太低的属性,或者得分相同的属性,就很难建立出来了。

    所以,在得出属性1的分发的时候,要去除值2,值3的同质集合,从新构筑树:

    然后,减去分析属性2的样本,已经没有样本了

    所以,最终, 这树:

    甚至,可以发现,用属性2就可以解决这个分类问题了。


     对属性分类能力的高低,还可以使用无序度(熵)来衡量。

    假如有二值,期样本量分别为P和N,T = P + N

    那么,无序度D = - P / T * log2 P/T - N/T * log2N/T

     

    由图可以看出,P样本占据总样本的数量越多,或越小,熵越少;

    那么,对于每个属性,其分类能力 Q = Σ D,即每个分支的无序度之和,越小越好;

    但是,有一个问题,各个分支的权重是一样的,也就是说,如果样本不足,导致某个属性枚举值分支没有样本,那无序度岂不是为0(最好了),这显然不是最合理的。

    所以:

    Q = Σ ( D * 分支样本数 / 总样本数)

    对于属性1:

    Q1 = 1/2

    同理,对于其他属性

    Q2≈0.6

    Q3≈0.7

    Q4≈0.95

    然后,可以去除属性1中,值2和值3的样本,剩余的样本继续再一轮计算属性2,属性3,属性4的熵,得出第二个分支。

  • 相关阅读:
    WebForm捆绑压缩js和css(WebForm Bundling and Minification)
    2017.4.15
    .NET Core + docker入门
    微软官方教程视频入口
    C# struct和class
    法线的变换的一些概念
    透视投影矩阵的一些概念
    视图矩阵ViewMatrix一些概念
    矩阵一些概念
    向量一些概念
  • 原文地址:https://www.cnblogs.com/pylblog/p/10329966.html
Copyright © 2011-2022 走看看