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

news/2024/10/2 8:31:11

0 前言

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

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条件熵:

  1. 当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

  2. 当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

  3. 当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

  4. 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 结语

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/55494.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

react创建项目常见的三大Hook

react创建项目&&常见的三大Hook 创建react脚手架项目 全局安装 create-react-app 工具: npm i -g create-react-app查看安装工具的版本号,注意V大写 create-react-app -V进入要创建的文件目录创建react项目,名为:react_project create-react-app react_project启动项…

GAugLLM论文阅读笔记

GAugLLM: Improving Graph Contrastive Learning for Text-Attributed Graphs with Large Language Models论文阅读笔记 Abstract 现存的问题: ​ 文本属性的长度和质量往往各不相同,因此很难在不改变原始语义的情况下扰乱原始文本描述。其次,虽然文本属性与图结构互为补充,…

Ceph Reef(18.2.X)之对象访问策略配置

作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任。 目录一.对象存储概述1.对象存储的访问方式2.基于http方式访问对象存储注意事项3.查看存储桶默认策略二.定制策略1.定制访问策略文件2.应用访问策略3.应用跨域规则【可选操作】三.对象存储的其他访问方式1.基于…

unity学习笔记(二)

2D渲染 Camera相机设置 Projection(投影方式):修改为Orthographic(正交) Size:改变相机的视野大小 Sprite “精灵图”一词首次作为图形术语出现,是在德州仪器的9918(A)视频显示处理器上。使用“精灵图”作为术语,是因为精灵图并不是帧缓冲中位图数据的一部分,而是“悬…

c#学习笔记(一)

基础语法 文档注释&代码块/// <summary>/// 待机/// </summary>#region 物体移动sq.transform.Translate(new Vector3(5,0,0));#endregion字符串格式化输出 使用 $ 可进行格式化输出 C# string 字符串的前面可以加 @(称作"逐字字符串")将转义字符(…

Linux 中实现按照每一列的类别计算 指定列值的平均数

001、[root@PC1 test]# ls a.txt [root@PC1 test]# cat a.txt ## 测试数据如下 a 8 a 3 b 2 e 2 d 10 b 3 b 7 e 4 [root@PC1 test]# awk {ay[$1] += $2; ay2[$1]++} END {for (i in ay) …

广受欢迎文档管理系统有哪些?这10款不容错过

比较好用的 10 款文档管理系统推荐:PingCode、Worktile、语雀、联想Filez企业网盘、360亿方云、DocuPhase 、M-Files 、LogicalDOC、Revver、Box。在现代企业环境中,管理大量文档和数据往往让人头疼。不仅需要维护信息的更新和可访问性,还要确保安全和遵守法规。这使得选择一…

Web刷题之polarctf靶场(1)

PolarCTF 1.XFF打开靶场发现需要ip为1.1.1.1的用户才行, 打开BurpSuite进行抓包并对数据包进行修改,根据题目XFF提示flag{847ac5dd4057b1ece411cc42a8dca4b7}对此题所考察的知识进行一个扩展(对于构造本地用户语句) X-Forwarded-For:127.0.0.1X-Forwarded:127.0.0.1Forwarded-F…