机器学习之——决策树条件熵计算[附加计算程序]

cnblogs 2024-09-02 08:13:01 阅读 63

0 前言

    <li>本文主要介绍决策树条件熵的计算并给出若干例子帮助理解。
  • 读者需要具备信息熵计算知识,若不了解请看:信息熵

1 条件熵

image

2 数据集

游玩数据集,请看:数据集 1.1节

3 条件熵的计算

使用所给游玩数据集。计算H(play|outlook)的条件熵(在Y随机变量为outlook条件下,X随机变量为play的条件熵)。笔者将Outlook属性排序后如下图(3-1)所示。

image

对属性Outlook分析并计算如下。

image

其中相应的运算数据笔者已用相应的颜色标注。属性"Play=yes个数"表示当outlook=overcast条件下的数据中有几个play为yes的样本。属性"P(play=yes)"表示当outlook=overcast条件下play为yes的概率。

同样方法,笔者分别计算随机变量temperature、humidity、windy的条件熵如下所示。

计算temperature条件熵:

    <li>

    当temperature=cool时,样本有4个,play=no有1个

    当temperature=cool时,样本有4个,play=yes有3个

    H(play|temperature=cool)=-(1.0/4.0)log2(1.0/4.0)-(3.0/4.0)log2(3.0/4.0)=0.8113

  1. 当temperature=hot时,样本有4个,play=no有2个

    当temperature=hot时,样本有4个,play=yes有2个

    H(play|temperature=hot)=-(2.0/4.0)log2(2.0/4.0)-(2.0/4.0)log2(2.0/4.0)=1.0000

  2. 当temperature=mild时,样本有6个,play=no有2个

    当temperature=mild时,样本有6个,play=yes有4个

    H(play|temperature=mild)=-(2.0/6.0)log2(2.0/6.0)-(4.0/6.0)log2(4.0/6.0)=0.9183

  3. H(play|temperature)=(4.0/14)* 0.8113+(4.0/14)* 1.0000+(6.0/14)* 0.9183=0.9111

计算humidity条件熵:

  1. 当humidity=high时,样本有7个,play=no有4个

    当humidity=high时,样本有7个,play=yes有3个

    H(play|humidity=high)=-(4.0/7.0)log2(4.0/7.0)-(3.0/7.0)log2(3.0/7.0)=0.9852

  2. 当humidity=normal时,样本有7个,play=no有1个

    当humidity=normal时,样本有7个,play=yes有6个

    H(play|humidity=normal)=-(1.0/7.0)log2(1.0/7.0)-(6.0/7.0)log2(6.0/7.0)=0.5917

  3. H(play|humidity)=(7.0/14)* 0.9852+(7.0/14)* 0.5917=0.7885

计算windy条件熵:

  1. 当windy=not时,样本有8个,play=no有2个

    当windy=not时,样本有8个,play=yes有6个

    H(play|windy=not)=-(2.0/8.0)log2(2.0/8.0)-(6.0/8.0)log2(6.0/8.0)=0.8113

  2. 当windy=yes时,样本有6个,play=no有3个

    当windy=yes时,样本有6个,play=yes有3个

    H(play|windy=yes)=-(3.0/6.0)log2(3.0/6.0)-(3.0/6.0)log2(3.0/6.0)=1.0000

  3. H(play|windy)=(8.0/14)* 0.8113+(6.0/14)* 1.0000=0.8922

4 计算程序

请看:计算程序 2~3节

5 结语

如有错误请指正,禁止商用。



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。