zoukankan      html  css  js  c++  java
  • 经典决策树模型

    常用的决策树算法有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} ]

  • 相关阅读:
    ffmpeg+EasyDSS流媒体服务器实现稳定的rtmp推流直播
    ffmpeg+EasyDSS流媒体服务器实现稳定的rtmp推流直播
    EasyPlayerPro安卓流媒体播放器实现Android H.265硬解码流程
    EasyPlayerPro安卓流媒体播放器实现Android H.265硬解码流程
    EasyPlayer RTSP安卓Android播放器架构简析
    EasyPlayer RTSP安卓Android播放器架构简析
    解决RTMP推送时间戳问题引起HLS切片不均匀导致手机浏览器播放卡顿的问题
    解决RTMP推送时间戳问题引起HLS切片不均匀导致手机浏览器播放卡顿的问题
    EasyPusher/EasyDarwin支持H.265 RTSP/RTP直播推流与分发播放
    EasyPusher/EasyDarwin支持H.265 RTSP/RTP直播推流与分发播放
  • 原文地址:https://www.cnblogs.com/selfcs/p/12623221.html
Copyright © 2011-2022 走看看