数据挖掘之C4.5决策树算法

article/2025/10/15 2:06:58

1.决策树算法实现的三个过程:

  • 特征选择:选择哪些特征作为分类的标准是决策树算法的关键,因此需要一种衡量标准来进行特征的确定,不同的决策树衡量标准不同。例如C4.5决策树就是以信息增益率来作为衡量标准。
  • 决策树的生成:根据所选择的衡量标准不断递归调用计算最后直到整个数据集中的特征不可分为止。决策树是从根节点开始自上而下逐渐生成树状结构。
  • 决策树的剪枝:在决策树学习中,为了尽可能正确分类训练样本,结点划分过程将不断重复,有时会造成决策树分支过多导致过拟合.因此需要剪枝降低过拟合风险。剪枝有预剪枝(边建立决策树边剪枝,就是设立一些规则来防止树过度生长。)和后剪枝(建立决策树后再剪枝让决策树生长成过拟合后再进行剪枝)

2.算法的实现步骤:

输入:数据集(训练集)S及属性A 输出:属性A对训练数据集S的信息增益

  •  先将S作为根节点,其目标属性y有c个类别属性。假设S中出现的概率,计算数据集S的信息熵

  • 假设属性A有k个不同取值,因此将S划分为k个子集,计算属性A对数据集S的信息熵

  • 计算按照属性A划分S的信息增益

  • 计算属性的分裂信息及信息增益率

  • 属性取值数目越大,分裂信息越大,从而抵消了属性取值数目所带来的影响,但增益率准则对可取值数目较少的属性有所偏好,所以应先从候选划分属性中找出信息增益高于平均水平的属性,再从中选择增益率最高的属性.
  • 将该属性作为决策树的节点,在该节点的子节点上使用剩余属性递归执行①~⑤。
  • 对生成的决策树进行剪枝处理。

3.算法实例

例题:以下是某公司招录人员的信息表,运用C4.5算法构建决策树模型。

性别

学历

学校

经验

是否录用

本科

985

本科

211

研究生

普通院校

大专

普通院校

本科

985

研究生

普通院校

本科

211

大专

普通院校

本科

普通院校

本科

普通院校

本科

211

研究生

211

① 计算数据集S的信息熵

该数据集的样本数为12,目标属性有{是,否}两个取值,其中取值为“是”的有8个,取值为“否”的有4个,因此对应的p1=2/3p2=1/3。所以数据集S的信息熵为

 

② 计算各个属性A对数据集S的信息熵、信息增益、属性的分裂信息及信息增益率

        a.对于属性性别:有两个取值{男,女}分别为,每个取值对应的情况分别为:

        男----9个:其中录取的有6个,不录取的有3个

        女----3个:其中录取的有2个,不录取的有1个

        因此

        信息熵:

        信息增益:

        分裂信息:

        信息增益率:

        b.对于属性学历:有三个取值{大专,本科,研究生}分别为,每个取值对应的情况分别为:

        大专----2个:其中录取的有0个,不录取的有2个

        本科----7个:其中录取的有5个,不录取的有2个   

        研究生--3个:其中录取的有3个,不录取的有0个

        因此

        信息熵:

        信息增益:

        分裂信息:

        信息增益率:

        c.对于属性学校:有三个取值{985,211,普通院校}分别为,每个取值对应的情况分别为:

        985-------2个:其中录取的有2个,不录取的有0个

        211-------4个:其中录取的有4个,不录取的有0个 

        普通院校--6个:其中录取的有2个,不录取的有4个

        因此

        信息熵:

        信息增益:

        分裂信息:

            信息增益率:

        d.对于属性经验:有两个取值{有,无}分别为,每个取值对应的情况分别为:

        有----5个:其中录取的有2个,不录取的有3个

        无----7个:其中录取的有6个,不录取的有1个

        因此

        信息熵:

        信息增益:

        分裂信息:

 

         信息增益率:

 

③ 从候选划分属性中找出信息增益高于平均水平的属性,再从中选择增益率最高的属性.

所有属性的平均信息增益:

其中学历和学校的信息增益高于平均水平的属性,两者中增益率最高的是学校。

 ④ 以学校作为根节点,

 

按照其他三个属性对属性学校中的985进行划分,

性别

学历

学校

经验

是否录用

本科

985

本科

985

由表可知对属性学校中的985分支划分后的子节点已经是纯的,因此不再需要继续划分节点。

按照其他三个属性对属性学校中的211进行划分,

性别

学历

学校

经验

是否录用

本科

211

本科

211

本科

211

研究生

211

由表可知对属性学校中的211分支划分后的子节点已经是纯的,因此不再需要继续划分节点。

按照其他三个属性对属性学校中的普通院校进行划分,计算步骤同上:

性别

学历

学校

经验

是否录用

研究生

普通院校

大专

普通院校

研究生

普通院校

大专

普通院校

本科

普通院校

本科

普通院校

1).计算数据集普通院校的信息熵,共6个数据,其中录用的有2人,不录用的有4人。

2). 计算各个属性A对数据集S的信息熵、信息增益、属性的分裂信息及信息增益率

        a.对于属性性别:有两个取值{男,女}分别为

        信息熵:

        信息增益:

       分裂信息:

      信息增益率:

        b.对于属性学历: 有三个取值{大专,本科,研究生}分别为

        信息熵:

        信息增益:

        分裂信息:

      信息增益率:

        c.对于属性经验:有两个取值{有,无}分别为S1S2

        信息熵:

        信息增益:

        分裂信息:

         信息增益率:

从候选划分属性中找出信息增益高于平均水平的属性,再从中选择增益率最高的属性.

所有属性的平均信息增益:

其中学历信息增益高于平均水平的属性,且增益率最高的也是学历。

⑤ 把学校的子节点中的普通学校节点的子节点设为学历。

以学历为父节点:如图所示:

 

按照其他两个属性对属性学历中大专的进行划分,

性别

学历

经验

是否录用

大专

大专

由表可知对属性学历中的大专分支划分后的子节点已经是纯的,因此不再需要继续划分节点。

按照其他两个属性对属性学历中本科的进行划分,

性别

学历

经验

是否录用

本科

本科

本科

本科

本科

本科

本科

1).计算数据集学历的信息熵,共7个数据,其中录用的有5人,不录用的有2人。

2). 计算各个属性A对数据集S的信息熵、信息增益、属性的分裂信息及信息增益率

        a.对于属性性别:有两个取值{男,女}分别为

        信息熵:

        信息增益:

        分裂信息:

         信息增益率:

        b.对于属性经验:有两个取值{有,无}分别为

        信息熵:

        信息增益:

 

        分裂信息:

         信息增益率:

其中经验增益率高于性别,所以学历节点中本科的子节点是经验。

按照其他两个属性对属性学历中研究生的进行划分,

性别

学历

经验

是否录用

研究生

研究生

研究生

由表可知对属性学历中的研究生分支划分后的子节点已经是纯的,因此不再需要继续划分节点。

划分结果如下图所示:

 

  • 最后总的划分结果如下:

 


http://chatgpt.dhexx.cn/article/HJHMoa4O.shtml

相关文章

决策树ID3例题

表格里统计了14天的气象数据,特征属性包括outlook,temperature,humidity,windy,类别属性为是否打球(play),用ID3算法生成决策树。 解答过程:

决策树算法与案例

决策树算法介绍 树模型 决策树:从根节点开始一步步走到叶子节点(决策)。所有的数据最终都会落到叶子节点,既可以做分类也可以做回归 树的组成 根节点:第一个选择点;非叶子节点与分支:中间过程…

数据挖掘--决策树ID3算法(例题)

决策树分类算法 决策树分类算法通常分为两个步骤:决策树生成和决策树修剪。 决策树生成算法的输入参数是一组带有类别标记的样本,输出是构造一颗决策树,该树可以是一棵二叉树或多叉树。二叉树的内部结点(非叶子结点)…

决策树算法原理+例题练习

一、决策树的优缺点 优点:计算复杂度不高,输出结果易于理解,对中间值的缺失值不敏感,可以处理不相关特征数据。缺点:可能会产生过度匹配的问题。使用数据类型:数值型和标称型。 二、一个实例 一天&#…

高级管理学:计算题

题1:决策树和期望值 某企业拟开发新产品,现在有两个可行性方案需要决策。 方案一:开发新产品 A,需要追加投资 180 万元,经营期限为 5 年。此间,产品销路好每年可获利 170 万元;销路一般每年可获…

Nikto漏洞扫描工具简介

nikto漏洞扫描工具在我的靶场上测试报告如下: 测试时间会很长,我是在虚拟环境下做的,给的配置不高,吃尽CPU,最后不得不强制关闭虚拟机,通过-o参数将结果输出到文档中。 结果显示: 一些黑客比较感…

wed渗透:记录kali系统下扫描工具nikto的使用

目录 前言1 工具介绍2 使用场景3 使用方法3.1 查看帮助信息3.2 Nikto插件3.3 扫描3.3.1 常规扫描3.3.2 指定端口扫描3.3.3 指定协议扫描3.3.4 指定目录扫描3.3.5 多目标扫描3.3.6 配合namp利用管道输入扫描3.3.7 利用代理扫描 3.4 Nikto扫描过程中的交互参数3.5 修改nikto配置文…

Nikto安装及使用

系统要求如下(我自己使用的是linux,其它两个没有研究): 一、安装软件 第一步准备两个软件,如下: 1、nikto-master.zip(官网下载地址:https://cirt.net/nikto2) 2、libw…

Nikto详细使用教程

Nikto简介 基于perl语言开发的web页面扫描器。其特点扫描全面,速度快。 nikto常用命令 -upodate 升级,更新插件 -host 扫描目标URl -id username:password http认证接口 -list-plugins …

使用Nikto扫描网站漏洞

Nikto简介 Nikto是一个简单的开源Web服务器扫描程序,可以检查网站并报告它发现的可能用于利用或破解网站的漏洞。此外,它是业界使用最广泛的网站漏洞工具之一,并且在许多圈子中被认为是行业标准。 虽然这个工具非常有效,但它根本…

Kali工具库之Nikto

工具简介 Nikto是一个开源的WEB扫描评估软件,可以对Web服务器进行多项安全测试,能在230多种服务器上扫描出 2600多种有潜在危险的文件、CGI及其他问题。Nikto可以扫描指定主机的WEB类型、主机名、指定目录、特定CGI漏洞、返回主机允许的 http模式等。 链…

Nikto 网页服务器扫描器

一、Nikto介绍 Nikto是一款开源的(GPL)网页服务器扫描器,它可以对网页服务器进行全面的多种扫描,包含超过3300种有潜在危险的文件CGIs;超过625种服务器版本;超过230种特定服务器问题。扫描项和插件可以自动…

nmap和nikto扫描

先通过本机的VMware启动Kali攻击机和Metasploitable2靶机 端口扫描 使用 ip addr 或者 ifconfig 先看一下靶机的ip地址 在Kali里面使用 nmap IP 先用默认的方式对靶机进行扫描 事实上nmap的默认扫描方式就是 -sS 也就是SYN扫描,这种扫描方式基于TCP三次握手的前两…

4 | Nikto使用

目录 1 Nikto简介2 部署2.1 下载地址 3 操作参数4 具体使用4.1 扫描单个地址4.2 详细输出4.3 扫描多个地址4.4 使用代理进行扫描4.5 使用LibWhisker绕过IDS的检测(10个参数 1-8、A、B) 1 Nikto简介 发现Web服务器配置错误、插件和Web漏洞,支…

Nikto 扫描

0x00:简介 nikto 是一款用来发现 web 应用程序漏洞的一个工具,扫描的内容大概包括服务器软件的版本,比较版本是否为最新,现版本和最新版的差以及这个版本可能存在的漏洞。会搜索一些存在隐患的文件,例如测试文件,或者是网站备份文件等。也会去扫描服务器的配置漏洞,有没…

Nikto:从零开始到专业版的完整教程

文章目录 [TOC](文章目录) 介绍一、什么是Nikto?二、Nikto工具中的功能Nikto工具中的命令有如何使用Nikto工具?1.安装Nikto2.标准扫描3.对目标SSl或TLS扫描4.扫描特定/多个端口5.忽略某些HTTP代码在这里插入图片描述 结论: 介绍 在这篇文章中…

网络安全——Nikto的使用

一、什么是Nikto Perl:Perl语言是一种解释型的脚本语言。Perl语言由Larry wall于1986年开发成功。当初的目的主要是在Unix环境下,用于处理面向系统任务而设计的脚本编程语言。Perl对文件和字符有很强的处理、变换能力,它特别适用于有关系统管…

Web漏洞扫描神器Nikto使用指南

文章目录 工具简介工具下载链接nikto安装nikto基础语句指定端口进行扫描指定目录进行扫描多目标扫描其他功能扫描结果输出Nikto扫描交互参数IDS 躲避使用代理扫描 后言 工具简介 Nikto是一款开源的(GPL)网页服务器扫描器,它可以对网页服务器…

pageoffice

激活失败,重新激活 输入序列号没有激活,提示当前PageOffice需要获取更高版本的授权才能正常运行 想要重新激活,要删除项目中WEB-INF下的lib中的license.lic文件,才能重新输入序列号 删除以后,出现激活窗口 注意&am…

clientX、pageX、offsetX、screenX、offsetWidth、clientWidth等

文章目录 1、clientX 、clientY2、pageX、pageY注意: clientX和pageX的区别3、offsetX、offsetY4、screenX、screenY5、offsetWidth、offsetHeight 、offsetLeft、offsetTop6、clientWidth、clientHeight、clientLeft、clientTop总结 1、clientX 、clientY documen…