• 经典决策树模型


    常用的决策树算法有ID3、C4.5、CART,它们构建树所使用的启发式函数各是什么?除了构建准则之外,它们之间的区别与联系是什么?首先,我们回顾一下这几种决策树构造时使用的准则。

    年龄 长相 工资 写代码 类别
    小A 不会 不见
    小B 年轻 一般 中等
    小C 年轻 不会 不见
    小D 年轻 一般
    小L 年轻 一般 不会 不见

    ID3: 最大信息增益


    信息增益 = 经验熵-经验条件熵

    (D):样本集合;(K):类别数

    经验熵:

    [H(D) = -sum_{k=1}^K frac{|C_k|}{|D|} ext{log}_2frac{|C_k|}{|D|} ]

    经验条件熵:

    [H(D|A)=sum_{i=1}^n frac{|D_i|}{|D|} H(D_i)=sum_{i=1}^n frac{|D_i|}{|D|}left(-sum_{k=1}^K frac{|C_k|}{|D|} ext{log}_2frac{|C_k|}{|D|} ight) ]

    示例:

    • Step1:计算经验熵

    总共D=5,不见:3,见:2

    [H(D)=-frac{3}{5} log_2frac{3}{5}-frac{2}{5} log_2frac{2}{5}=0.971 ]

    • Step2. 计算经验条件熵

    [egin{aligned} &H(D|年龄) = frac{1}{5}H(老)+frac{4}{5}H(年轻)=frac{1}{5}(-0)+frac{4}{5}left(-frac{2}{4} log _{2} frac{2}{4}-frac{2}{4} log _{2} frac{2}{4} ight)=0.8 \ &H(D|长相) = frac{1}{5}H(帅)+frac{3}{5}H(一般)+frac{1}{5}H(丑)=0+frac{3}{5}left(-frac{2}{3} log _{2} frac{2}{3}-frac{1}{3} log _{2} frac{1}{3} ight)+0=0.551 \ &H(D|工资) = frac{3}{5}H(高)+frac{1}{5}H(中等)+frac{1}{5}H(低)=frac{3}{5}left(-frac{2}{3} log _{2} frac{2}{3}-frac{1}{3} log _{2} frac{1}{3} ight)+0+0=0.551 \ &H(D|写代码)=frac{3}{5}H(不会)+frac{2}{5}H(会)=frac{3}{5}(0)+frac{2}{5}(0)=0 end{aligned} ]

    • Step3. 计算信息增益

    [egin{aligned} &g(D,年龄) = 0.171,g(D,长相)=0.42 \ &g(D,工资) = 0.42,g(D,写代码)=0.971 end{aligned} ]

    ID3只能用于离散型变量.

    C4.5:最大信息增益比

    特征A对于数据集D的信息增益比定义为:

    [ ext{g}_R(D, A)=frac{ ext{g}(D, A)}{H_A(D)} ]

    其中:

    [H_A(D) = -sum_{i=1}^K frac{|D_i|}{|D|} ext{log}_2frac{|D_i|}{|D|} ]

    CART:最大基尼指数


    CART是指分类与回归树,而前两种只能用做分类.

    Gini描述的是数据的纯度,和信息熵类似。

    [ ext{Gini}(D) = 1-sum_{k=1}^n left(frac{|C_k|}{|D|} ight) ]

    CART在每一次迭代中选择基尼指数最小的特征及其对应的切分点进行分类。CART是一棵二叉树。特征A的Gini指数定义为:

    [ ext{Gini}(D|A)=sum_{i=1}^nleft(frac{|D_i|}{|D|} ight) ext{Gini}(D_i) ]

    根据式(3.24)可计算出各个特征的Gini指数为

    [egin{aligned} & ext{Gini}(D| ext{年龄=老})=0.4, \ & ext{Gini}(D| ext{年龄=年轻})=0.4,\ & ext{Gini}(D| ext{长相=帅})=0.4, ext{Gini}(D| ext{长相=丑})=0.4,\ & ext{Gini}(D| ext{写代码=会})=0, ext{Gini}(D| ext{写代码=不会})=0,\ & ext{Gini}(D| ext{工资=高})=0.47, ext{Gini}(D| ext{工资=中等})=0.3,\ & ext{Gini}(D| ext{工资=低})=0.4 end{aligned} ]

  • 相关阅读:
    pip或easy_install安装库报错:SSL: CERTIFICATE_VERIFY_FAILED
    js 闭包
    php 安装xdebug进行调试(phpstorm)
    Linux下一个最简单的不依赖第三库的的C程序(2)
    Linux下一个最简单的不依赖第三库的的C程序(1)
    windbg .net 程序的死锁检测 常用方法(个人备份笔记)
    自定义经纬度索引(非RTree、Morton Code[z order curve]、Geohash的方式)
    通过经纬度坐标计算距离的方法(经纬度距离计算)
    根据2个经纬度点,计算这2个经纬度点之间的距离(通过经度纬度得到距离)
    The version of SOS does not match the version of CLR you are debugging; SOS.dll版本不匹配; Dump文件不同环境mscordacwks.dll版本问题
  • 原文地址:https://www.cnblogs.com/selfcs/p/12623221.html
Copyright © 2020-2023  润新知