信息增益计算和决策树生长过程

news/2024/5/14 11:27:44/文章来源:https://blog.csdn.net/W_chuanqi/article/details/127273435

信息增益计算和决策树生长过程

给定训练集S,下面以信息增益作为最佳划分的标准,演示信息增益的计算和决策树生长的过程:

image-20220902101624313

根节点

(1)以“Outlook”被选做划分属性

image-20220902080238593

总共有14条数据,打球9条,不打球的5条

根据Outlook进行划分:

  • Sunny中有5条数据,其中打球2条,不打球3条
  • Overcast中有4条数据,其中打球4条,不打球0条
  • Rain中有5条数据,其中打球3条,不打球2条

如下图所示:

image-20220902084506916

计算信息增益:
E(Outlook)=−914log2914−514log2514E(SSunny)=−25log225−35log235E(SOvercast)=−44log244−04log204E(SRain)=−35log235−25log225Gain(Outlook)=E(Outlook)−[514E(SSunny)+414E(SOvercast)+514E(SRain)]=0.246E(Outlook)=-\frac{9}{14}log_2\frac{9}{14}-\frac{5}{14}log_2\frac{5}{14} \\E(S_{Sunny})=-\frac{2}{5}log_2\frac{2}{5}-\frac{3}{5}log_2\frac{3}{5} \\E(S_{Overcast})=-\frac{4}{4}log_2\frac{4}{4}-\frac{0}{4}log_2\frac{0}{4} \\E(S_{Rain})=-\frac{3}{5}log_2\frac{3}{5}-\frac{2}{5}log_2\frac{2}{5} \\Gain(Outlook)=E(Outlook)-[\frac{5}{14}E(S_{Sunny})+\frac{4}{14}E(S_{Overcast})+\frac{5}{14}E(S_{Rain})] =0.246 E(Outlook)=149log2149145log2145E(SSunny)=52log25253log253E(SOvercast)=44log24440log240E(SRain)=53log25352log252Gain(Outlook)=E(Outlook)[145E(SSunny)+144E(SOvercast)+145E(SRain)]=0.246
可见,用属性“Outlook”划分样本集S的信息增益为:

Gain(S,Outlook)=0.246

(2)以“Temperature”作为划分属性

根据Temperature进行划分:

  • Hot中有4条数据,其中打球2条,不打球2条
  • Mild中有6条数据,其中打球4条,不打球2条
  • Cool中有4条数据,其中打球3条,不打球1条

如下图所示:

image-20220902090504767

计算信息增益:
E(Temperature)=−914log2914−514log2514E(SHot)=−24log224−24log224E(SMild)=−46log246−26log226E(SRain)=−34log234−14log214Gain(Temperature)=E(Temperature)−[414E(SHot)+614E(SMild)+414E(SCool)]=0.029E(Temperature)=-\frac{9}{14}log_2\frac{9}{14}-\frac{5}{14}log_2\frac{5}{14} \\E(S_{Hot})=-\frac{2}{4}log_2\frac{2}{4}-\frac{2}{4}log_2\frac{2}{4} \\E(S_{Mild})=-\frac{4}{6}log_2\frac{4}{6}-\frac{2}{6}log_2\frac{2}{6} \\E(S_{Rain})=-\frac{3}{4}log_2\frac{3}{4}-\frac{1}{4}log_2\frac{1}{4} \\Gain(Temperature)=E(Temperature)-[\frac{4}{14}E(S_{Hot})+\frac{6}{14}E(S_{Mild})+\frac{4}{14}E(S_{Cool})] =0.029 E(Temperature)=149log2149145log2145E(SHot)=42log24242log242E(SMild)=64log26462log262E(SRain)=43log24341log241Gain(Temperature)=E(Temperature)[144E(SHot)+146E(SMild)+144E(SCool)]=0.029

(3)以“Humidity”作为划分属性

根据Humidity进行划分:

  • High中有7条数据,其中打球3条,不打球4条
  • Normal中有7条数据,其中打球6条,不打球1条

如下图所示:

image-20220902095027292

计算信息增益:
E(Humidity)=−914log2914−514log2514E(SHigh)=−37log237−47log247E(SNormal)=−67log267−17log217Gain(Humidity)=E(Humidity)−[714E(SHigh)+714E(SNormal)]=0.151E(Humidity)=-\frac{9}{14}log_2\frac{9}{14}-\frac{5}{14}log_2\frac{5}{14} \\E(S_{High})=-\frac{3}{7}log_2\frac{3}{7}-\frac{4}{7}log_2\frac{4}{7} \\E(S_{Normal})=-\frac{6}{7}log_2\frac{6}{7}-\frac{1}{7}log_2\frac{1}{7} \\Gain(Humidity)=E(Humidity)-[\frac{7}{14}E(S_{High})+\frac{7}{14}E(S_{Normal})] =0.151 E(Humidity)=149log2149145log2145E(SHigh)=73log27374log274E(SNormal)=76log27671log271Gain(Humidity)=E(Humidity)[147E(SHigh)+147E(SNormal)]=0.151

(4)以“Wind”作为划分属性

根据Wind进行划分:

  • Weak中有8条数据,其中打球6条,不打球2条
  • Strong中有6条数据,其中打球3条,不打球3条

如下图所示:

image-20220902100332429

计算信息增益:
E(Wind)=−914log2914−514log2514E(SWeak)=−68log268−28log228E(SStrong)=−36log236−36log236Gain(Wind)=E(Wind)−[814E(SWeak)+614E(SStrong)]=0.048E(Wind)=-\frac{9}{14}log_2\frac{9}{14}-\frac{5}{14}log_2\frac{5}{14} \\E(S_{Weak})=-\frac{6}{8}log_2\frac{6}{8}-\frac{2}{8}log_2\frac{2}{8} \\E(S_{Strong})=-\frac{3}{6}log_2\frac{3}{6}-\frac{3}{6}log_2\frac{3}{6} \\Gain(Wind)=E(Wind)-[\frac{8}{14}E(S_{Weak})+\frac{6}{14}E(S_{Strong})] =0.048 E(Wind)=149log2149145log2145E(SWeak)=86log28682log282E(SStrong)=63log26363log263Gain(Wind)=E(Wind)[148E(SWeak)+146E(SStrong)]=0.048

(5)根节点选择

比较四个以不同属性划分的信息增益:

  • Gain(S,Outlook)=0.246
  • Gain(S,Temperature)=0.029
  • Gain(S,Humidity)=0.151
  • Gain(S,Wind)=0.048

所以,对于当前节点,用“Outlook”划分样本集S的信息增益最大,被选为划分属性。

image-20220902112302227

左儿子节点(Sunny)

(1)以“Temperature”作为划分属性

总共有5条数据,打球2条,不打球的3条

根据Temperature进行划分:

  • Hot中有2条数据,其中打球0条,不打球2条
  • Mild中有2条数据,其中打球1条,不打球1条
  • Cool中有1条数据,其中打球1条,不打球0条

如下图所示:

image-20220902102857144

计算信息增益:
E(Temperature)=−25log225−35log235E(SHot)=−02log202−22log222E(SMild)=−12log212−12log212E(SRain)=−11log211−01log201Gain(Temperature)=E(Temperature)−[25E(SHot)+25E(SMild)+15E(SCool)]=0.5710E(Temperature)=-\frac{2}{5}log_2\frac{2}{5}-\frac{3}{5}log_2\frac{3}{5} \\E(S_{Hot})=-\frac{0}{2}log_2\frac{0}{2}-\frac{2}{2}log_2\frac{2}{2} \\E(S_{Mild})=-\frac{1}{2}log_2\frac{1}{2}-\frac{1}{2}log_2\frac{1}{2} \\E(S_{Rain})=-\frac{1}{1}log_2\frac{1}{1}-\frac{0}{1}log_2\frac{0}{1} \\Gain(Temperature)=E(Temperature)-[\frac{2}{5}E(S_{Hot})+\frac{2}{5}E(S_{Mild})+\frac{1}{5}E(S_{Cool})] =0.5710 E(Temperature)=52log25253log253E(SHot)=20log22022log222E(SMild)=21log22121log221E(SRain)=11log21110log210Gain(Temperature)=E(Temperature)[52E(SHot)+52E(SMild)+51E(SCool)]=0.5710

(2)以“Humidity”作为划分属性

总共有5条数据,打球2条,不打球的3条

根据Humidity进行划分:

  • High中有3条数据,其中打球0条,不打球3条
  • Normal中有2条数据,其中打球2条,不打球0条

如下图所示:

image-20220902104423365

计算信息增益:
E(Humidity)=−25log225−35log235E(SHigh)=−03log203−33log233E(SNormal)=−22log222−02log202Gain(Humidity)=E(Humidity)−35E(SHigh)+25E(SNormal)=0.9710E(Humidity)=-\frac{2}{5}log_2\frac{2}{5}-\frac{3}{5}log_2\frac{3}{5} \\E(S_{High})=-\frac{0}{3}log_2\frac{0}{3}-\frac{3}{3}log_2\frac{3}{3} \\E(S_{Normal})=-\frac{2}{2}log_2\frac{2}{2}-\frac{0}{2}log_2\frac{0}{2} \\Gain(Humidity)=E(Humidity)-\frac{3}{5}E(S_{High})+\frac{2}{5}E(S_{Normal}) =0.9710 E(Humidity)=52log25253log253E(SHigh)=30log23033log233E(SNormal)=22log22220log220Gain(Humidity)=E(Humidity)53E(SHigh)+52E(SNormal)=0.9710

(3)以“Wind”作为划分属性

总共有5条数据,打球2条,不打球的3条

根据Wind进行划分:

  • Weak中有3条数据,其中打球1条,不打球2条
  • Strong中有2条数据,其中打球1条,不打球1条

如下图所示:

image-20220902105734251

计算信息增益:
E(Wind)=−25log225−35log235E(SWeak)=−13log213−23log223E(SStrong)=−12log212−12log212Gain(Wind)=E(Wind)−[35E(SWeak)+25E(SStrong)]=0.019973E(Wind)=-\frac{2}{5}log_2\frac{2}{5}-\frac{3}{5}log_2\frac{3}{5} \\E(S_{Weak})=-\frac{1}{3}log_2\frac{1}{3}-\frac{2}{3}log_2\frac{2}{3} \\E(S_{Strong})=-\frac{1}{2}log_2\frac{1}{2}-\frac{1}{2}log_2\frac{1}{2} \\Gain(Wind)=E(Wind)-[\frac{3}{5}E(S_{Weak})+\frac{2}{5}E(S_{Strong})] =0.019973 E(Wind)=52log25253log253E(SWeak)=31log23132log232E(SStrong)=21log22121log221Gain(Wind)=E(Wind)[53E(SWeak)+52E(SStrong)]=0.019973

(4)左儿子节点选择

比较四个以不同属性划分的信息增益:

  • Gain(S,Temperature)=0.5710
  • Gain(S,Humidity)=0.9710
  • Gain(S,Wind)=0.019973

所以,对于当前节点,用“Humidity”划分样本集S的信息增益最大,被选为划分属性。

image-20220902111740122

右儿子节点(Rain)

(1)以“Temperature”作为划分属性

总共有5条数据,打球3条,不打球的2条

根据Temperature进行划分:

  • Mild中有3条数据,其中打球2条,不打球1条
  • Cool中有2条数据,其中打球1条,不打球1条

如下图所示:

image-20220902112933214

计算信息增益:
E(Temperature)=−35log235−25log225E(SMild)=−23log223−13log213E(SRain)=−12log212−12log212Gain(Temperature)=E(Temperature)−[35E(SMild)+25E(SCool)]=0.019973E(Temperature)=-\frac{3}{5}log_2\frac{3}{5}-\frac{2}{5}log_2\frac{2}{5} \\E(S_{Mild})=-\frac{2}{3}log_2\frac{2}{3}-\frac{1}{3}log_2\frac{1}{3} \\E(S_{Rain})=-\frac{1}{2}log_2\frac{1}{2}-\frac{1}{2}log_2\frac{1}{2} \\Gain(Temperature)=E(Temperature)-[\frac{3}{5}E(S_{Mild})+\frac{2}{5}E(S_{Cool})] = 0.019973 E(Temperature)=53log25352log252E(SMild)=32log23231log231E(SRain)=21log22121log221Gain(Temperature)=E(Temperature)[53E(SMild)+52E(SCool)]=0.019973

(2)以“Humidity”作为划分属性

总共有5条数据,打球3条,不打球的2条

根据Humidity进行划分:

  • High中有2条数据,其中打球1条,不打球1条
  • Normal中有3条数据,其中打球2条,不打球1条

如下图所示:

image-20220902120912489

计算信息增益:
E(Humidity)=−35log235−25log225E(SHigh)=−12log212−12log212E(SNormal)=−23log223−13log213Gain(Humidity)=E(Humidity)−[25E(SHigh)+35E(SNormal)]=0.019973E(Humidity)=-\frac{3}{5}log_2\frac{3}{5}-\frac{2}{5}log_2\frac{2}{5} \\E(S_{High})=-\frac{1}{2}log_2\frac{1}{2}-\frac{1}{2}log_2\frac{1}{2} \\E(S_{Normal})=-\frac{2}{3}log_2\frac{2}{3}-\frac{1}{3}log_2\frac{1}{3} \\Gain(Humidity)=E(Humidity)-[\frac{2}{5}E(S_{High})+\frac{3}{5}E(S_{Normal})] = 0.019973 E(Humidity)=53log25352log252E(SHigh)=21log22121log221E(SNormal)=32log23231log231Gain(Humidity)=E(Humidity)[52E(SHigh)+53E(SNormal)]=0.019973

(3)以“Wind”作为划分属性

总共有5条数据,打球3条,不打球的2条

根据Wind进行划分:

  • Weak中有3条数据,其中打球3条,不打球0条
  • Strong中有2条数据,其中打球0条,不打球2条

如下图所示:

image-20220902121253350

计算信息增益:
E(Wind)=−35log235−25log225E(SWeak)=−33log233−03log203E(SStrong)=−02log202−22log222Gain(Wind)=E(Wind)−[35E(SWeak)+25E(SStrong)]=0.9710E(Wind)=-\frac{3}{5}log_2\frac{3}{5}-\frac{2}{5}log_2\frac{2}{5} \\E(S_{Weak})=-\frac{3}{3}log_2\frac{3}{3}-\frac{0}{3}log_2\frac{0}{3} \\E(S_{Strong})=-\frac{0}{2}log_2\frac{0}{2}-\frac{2}{2}log_2\frac{2}{2} \\Gain(Wind)=E(Wind)-[\frac{3}{5}E(S_{Weak})+\frac{2}{5}E(S_{Strong})] =0.9710 E(Wind)=53log25352log252E(SWeak)=33log23330log230E(SStrong)=20log22022log222Gain(Wind)=E(Wind)[53E(SWeak)+52E(SStrong)]=0.9710

(4)右儿子节点选择

比较四个以不同属性划分的信息增益:

  • Gain(S,Temperature)= 0.019973
  • Gain(S,Humidity)=0.019973
  • Gain(S,Wind)=0.9710

所以,对于当前节点,用“Wind”划分样本集S的信息增益最大,被选为划分属性。

image-20220902121649494

决策树

}E(S_{Weak})+\frac{2}{5}E(S_{Strong})]
=0.9710
$$

(4)右儿子节点选择

比较四个以不同属性划分的信息增益:

  • Gain(S,Temperature)= 0.019973
  • Gain(S,Humidity)=0.019973
  • Gain(S,Wind)=0.9710

所以,对于当前节点,用“Wind”划分样本集S的信息增益最大,被选为划分属性。

[外链图片转存中…(img-7QjJzuWa-1665499737384)]

决策树

image-20220902121638582

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

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[Windows内核源码分析5] 引导过程(对象管理器初始化在Phase1部分的分析)

在第1阶段, ObInitSystem首先对每个处理器的PRCB结构的lookaside链表进行初始化。 在全局名字空间中创建根目录\ 来看一下NtCreateDirectoryObject这个函数实际上是ObCreateObject和ObInsertDirectory的封装。其内部执行的操作很简单,一个是创建一个目录对象, 接着…

y160.第九章 GitOps从入门到精通 -- Tekton Trigger(九)

8.Tekton Trigger 8.1 Tekton Trigger 基础 Tekton Triggers简介 监控特定的事件,并在满足条件时自动触发Tekton Pipeline; 例如,代码仓库上的创建pull request、push代码,以及合并pull request至main分支等Tekton Triggers为用户提供了一种声明式API 它允许用户按需定义监…

客户管理系统(SSM版):解除线索关联市场活动

一、客户需求: 用户在线索明细页面,点击某一个"解除关联"按钮,弹出确认解除的窗口; 用户点击"确定"按钮,完成解除线索关联市场活动的功能. *解除成功之后,刷新已经关联的市场活动列表 *解除失败,提示信息,列表也不刷新 二、功能实现 1.首…

openjdk源码准备编译和依赖

在Windows系统上进行openjdk的源码编译 一、准备编译需要的装备 1.首先下载一个软件Cygwin。这个软件是一个在Windows平台下模拟Linux运行环境的软件,提供了一系列的Linux的运行命令。(解释这些,有兴趣的自己百度) 下载的路径点…

Web APIs:事件基础

事件三要素 1.事件是有三部分组成 事件源 事件类型 事件处理程序 (1)事件源 事件被触发的对象 谁 按钮 (2)事件类型 如何触发 什么事件 比如鼠标点击(click),经过 还是键盘按下 &…

TRC丨艾美捷TRC D-Abequose说明书

艾美捷TRC D-Abequose是一种甜味剂和增味剂配方,适用于食品、饮料、药物和化妆品用途。 艾美捷TRC D-Abequose化学性质: 目录号A010205 化学名称D-Abequose CAS 编号56816-60-5 分子式C₆H₁₂O₄ 分子量148.16 贮存4C 溶解度甲醇(少许…

【蓝桥杯国赛】H 机房

蓝桥杯2022年第十三届决赛真题-机房 - C语言网 (dotcpp.com) 题意: 一共有n个结点,n-1条边,因此这是棵树 信息经过一个结点,就会产生一定的延迟,具体延迟的时间等于该结点的度数 每次询问树上两个结点,问…

c++学习

C学习Static变量生存期和作用域静态局部变量类的继承多态虚函数纯虚函数(接口)可见性数组字符串constmutable成员初始化列表三元操作符在堆、栈上创建C实例化对象C运算符和其重载thisC对象的生存期智能指针uniqueptr(作用域指针)s…

Ubuntu安装微信

1.安装wine sudo dpkg --add-architecture i386 sudo mkdir -pm755 /etc/apt/keyrings sudo wget -O /etc/apt/keyrings/winehq-archive.key https://dl.winehq.org/wine-builds/winehq.key//根据你的系统执行不同的命令 Ubuntu 22.04 sudo wget -NP /etc/apt/sources.list.d/…

快乐刷课---Tampermonkey下载使用

TampermonkeyChrome插件伴侣下载资源: 链接:https://pan.baidu.com/s/1IIzB8N2iPW2RjUO2pqDVHw?pwd6666 提取码:6666 1. 下载 Tampermonkey 进入油猴的官网Tampermonkey,下载你使用的浏览器对应的版本 以谷歌浏览器为例&am…

如何计算维吉尼亚密码?Java实现维吉尼亚密码的加密解密算法

文章目录如何计算维吉尼亚密码?Java实现加密算法Java实现解密算法参考博客如何计算维吉尼亚密码? 计算维吉尼亚密码有2种方式,一种是根据密码表查找,另一种是手动计算方法。 1.密码表查找法 第一行是密钥,第一列是明文…

CH579 Cortex-M0 内核低功耗蓝牙 MCU 集成 ARM 内核 32 位微控制器

概述 CH579 是集成 BLE 无线通讯的 ARM 内核 32 位微控制器。片上集成低功耗蓝牙 BLE 通讯模块、以太网控制器及收发器、全速 USB 主机和设备控制器及收发器、段式 LCD 驱动模块、ADC、触摸按键检测模块、RTC 等丰富的外设资源。 特点 32 位 ARM Cortex-M0 内核,…

Arduino常用函数(二)

数学函数 1、min(x,y)函数的作用是返回x,y两者中较小的。 2、max(x,y)函数的作用是返回x,y两者中较大的。 3、abs(x)函数的作用是获取x的绝对值。 4、constrain(amt,low,high)函数的工作过程是,如果amt小于low,则返回low&…

Pytho07--面向对象2

之前我们已经知道了面向对象的概念及在python中创建空类,带方法的类,带初始化方法的类,带实例化方法的类等并认识了类的成员。在我们将其与Java的代码进行对比后发现了python确实有它的方便之处。面向对象的内容不止之前文章中提到的那些&…

IDEA+Tomcat——前端输入数据乱码问题

IDEATomcat——前端输入数据乱码问题 给别人远程部署项目的时候,发现比较老的项目会出现接收前端数据是乱码的问题,但这个项目在我自己的电脑上却是正常的,通过对比发现,IDEA版本或Tomcat版本不同及过低是造成此问题的主要原因&am…

【数学与算法】最小生成树Spanning Trees

链接 无向图: 无向图的意思是,边没有方向。 树: 树是一类特殊的图,树是由节点和无向边构成的; 所有的树都是无向图,但是无向图未必是树; 树有一些性质,但并非所有图都有这些性质…

webrtc防抖动策略NetEq

什么是NetEq:进行抖动控制和丢包隐藏,让音频更平滑。 NetEq的位置 消除抖动的基本原理 NetEq整体架构 NetEq用到的几种缓冲区 NetEq的MCU与DSP NetEq的位置: 网络抖动的计算方式: 两个包在发送端的时间间隔为S,在接收端的间隔为R,那么抖动为J=S-R。 NetEq缓冲区设置多…

golang中struct

前面已经介绍的数组,slice,map有一定的相同之处,即处理的都是相同类型的元素,map中的key和value属于相同的类型,但如果要把多个类型的元素放到一起进行处理,则要使用go语言为我们提供的数据结构struct struct非常适合定…

【Arcgis操作】模块化(批量、自动化)计算多个图层的面积

有很多个图层的面积要计算,如果采用普通的方法,需要给每个图层添加【字段】,然后再挨个计算,图层少的话还好,图层太多的话,很麻烦,很累。 那么,有没有一种方法,能够批量…

OpenCV-Python学习(7)—— OpenCV 轨迹栏操作和键盘响应操作

1. 知识点 cv.namedWindow() 创建一个窗口;cv.createTrackbar() 创建一个轨迹栏;cv.getTrackbarPos() 获取对应轨迹栏的轨迹位置;cv.waitKey() 键盘操作返回对应的key。 2. cv.namedWindow() 函数说明 函数使用 cv.namedWindow(winname, …