zoukankan      html  css  js  c++  java
  • 机器学习-决策树最优类别属性选择的三个方法


    本文所用符号:

    • (D):所有样本,如《西瓜书》中所有的西瓜样本
    • (a):用来划分样本的类别属性,a有V个可取值{(a^1,a^2 dots , a^V)},如若用a表示“色泽”,则a的取值是{(a^1=青绿,a^2=乌黑,a^3=浅白)},此时(V=3)
    • (D^v):用a对样本D进行划分后属于(a^v)的样本子集
    • (|y|)(y)属性可取个数,下文中用y表示模型最终划分的结果集,如西瓜书中的{好瓜,坏瓜}

    信息增益

    使用信息熵$$Ent(D)=-sum_{k=1}^Vp_klog_2p_k$$度量样本合集纯度,(Ent(D))越大,纯度越低。用a对样本分类后,信息增益

    [Gain(D,a)=Ent(D)-sum_{v=1}^V frac{|D^v|}{|D|}Ent(D^v)$$越大说明使用a作为划分类别对样本划分后纯度提高越多,其中$sum_{v=1}^V frac{|D^v|}{|D|}Ent(D^v)$表示划分后的每个子集的信息熵的加权和。 选择使信息增益最大化的划分类别如a对样本进行第一次划分后,形成v个子样本:{$D^1,D^2 cdots,D^v$},再对每个子样本用相同的方法继续划分即可,如对$D^1$划分:选择除a之外的类别属性b和c,分别计算$Gain(D^1,b)$和$Gain(D^1,c)$,最后选择使结果值较大的类别属性进行划分。使用信息增益法划分子集的算法叫做ID3决策树算法。 ## 增益率 信息增益法对可取值较多的类别划分属性有所偏好,可能影响模型的泛化能力,C4.5决策树算法中使用“增益率”选择最优划分属性。增益率定义:$$gain_ratio(D,a)=frac{Gain(D,a)}{IV(a)}$$,其中$$IV(a)=-sum_{v=1}^Vfrac{|D^v|}{|D|}log_2frac{|D^v|}{|D|}$$,为什么分母是这样子?希望有时间能看下《信息论》,但是可以粗浅地看出,a的取值可能性越多,$IV(a)$越大(假设a只有一个取值,那么IV(a)为0;取两个值且各占一半,IV(a)为 $-log_2frac{1}{2}$;取三个值且各占三分之一,IV(a)为$-log_2frac{1}{3}$),正好起到调停作用。 增益率对可取值数量较小的类别属性有所偏好,实际计算中,先选出信息增益高于平均值的若干个类别属性,然后再从中选择增益率较高的属性作为分类属性 ## 基尼指数 CART决策树算法使用基尼指数,其定义为:$$Gini(D)=sum_{k=1}^{|y|}sum_{k' eq k} p_kp_{k'}=1-sum_{k=1}^{|y|}p_k^2$$,基尼指数表示从D中随机取出两个样本其标记不一致的概率,此概率越低,说明纯度越高。 类别属性a的基尼指数定义为$$Gini_index(D,a)=sum_{v=1}^Vfrac{|D^v|}{|D|}Gini(D^v)$$,选择基尼指数最小的属性作为划分属性。 --- 参考: - 《机器学习》周志华著 - 《机器学习工程师》网易云课堂出品]

  • 相关阅读:
    JAVA回调机制(转)
    单例模式之饿汉懒汉模式
    TOMCAT目录结构
    Hibernate Component的用法
    【转】单例模式完全剖析
    EhCache使用详解
    【转】jar包详解和METAINF作用
    使用 Spring 2.5 注释驱动的 IoC 功能
    vc中,制作在任务栏隐藏图标的mfc程序
    打开网页,打开外部应用程序
  • 原文地址:https://www.cnblogs.com/zzy0471/p/9497285.html
Copyright © 2011-2022 走看看