C4.5算法【python,算法,机器学习】

优点

  1. 可以处理缺失值。
  2. 特征只能使用一次。
  3. 可以剪枝,可以避免过拟合问题。

缺点

  1. 不适合大数据集的训练,因为受内存大小影响。

计算流程

对于单个特征 A, 我们做如下假设:

  1. 有两个判断值yesno, 概率分别为 p y p_y py p n p_n pn
  2. 有三组值a,b,c, 各组的比例分别为 r a r_a ra r b r_b rb r c r_c rc,各个组内yesno的比例分别为 r a y r_{ay} ray r a n r_ {an} ran r b y r_{by} rby r b n r_{bn} rbn r c y r_{cy} rcy r c n r_{cn} rcn

那么该特征的熵增比的计算流程如下:

  1. 计算初始熵: h ( i n i t ) = − ( p y ∗ log ⁡ 2 p y + p n ∗ log ⁡ 2 p n ) h(init)=-(p_y*\log_2{p_y}+p_n*\log_2{p_n}) h(init)=(pylog2py+pnlog2pn)
  2. 计算分组的条件熵: h ( D ∣ A ) = r a ( − ( r a y ∗ log ⁡ 2 r a y + r a n ∗ log ⁡ 2 r a n ) ) + r b ( − ( r b y ∗ log ⁡ 2 r b y + r b n ∗ log ⁡ 2 r b n ) ) + r c ( − ( r c y ∗ log ⁡ 2 r c y + r c n ∗ log ⁡ 2 r c n ) ) h(D|A)=r_a(-(r_{ay}*\log_2{r_{ay}}+r_{an}*\log_2{r_{an}})) + r_b(-(r_{by}*\log_2{r_{by}}+r_{bn}*\log_2{r_{bn}})) + r_c(-(r_{cy}*\log_2{r_{cy}}+r_{cn}*\log_2{r_{cn}})) h(DA)=ra((raylog2ray+ranlog2ran))+rb((rbylog2rby+rbnlog2rbn))+rc((rcylog2rcy+rcnlog2rcn))
  3. 计算熵增: g ( A ) = h ( i n i t ) − h ( D ∣ A ) g(A)=h(init)-h(D|A) g(A)=h(init)h(DA)
  4. 计算熵增比: g a i n _ r a t i o = g ( A ) / ( − r a log ⁡ 2 r a − r b log ⁡ 2 r b − r c log ⁡ 2 r c ) gain\_ratio=g(A)/(-r_a\log_2{r_a}-r_b\log_2{r_b}-r_c\log_2{r_c}) gain_ratio=g(A)/(ralog2rarblog2rbrclog2rc)

一下是一个简单代码示例:

import numpy as np
import pandas as pddf = pd.DataFrame({"wage": [1, 0, 1, 0, 0, 1, 0, 0],"press": [1, 1, 0, 1, 1, 1, 0, 0],"platform": [2, 0, 0, 0, 1, 1, 2, 1],"work": ["好", "好", "好", "好", "不好", "好", "不好","不好"]})# 计算信息熵
def cal_entropy(p_arr):return sum(-p * np.log2(p) for p in p_arr)# 计算工资特征的初始熵
init_entropy_wage = cal_entropy([5 / 8, 3 / 8])
# 计算工资列特征的信息熵
entropy_wage = (3 / 8 * cal_entropy([3 / 3]) +5 / 8 * cal_entropy([2 / 5, 3 / 5]))
# 计算工资的熵增
gain_entropy_wage = init_entropy_wage - entropy_wage
print(gain_entropy_wage)
# 计算工资的熵增比,利用熵增除以特征分组比例的信息熵,这里的分组熵和初始熵计算值是一样的
gain_ratio_wage = gain_entropy_wage / cal_entropy([5 / 8, 3 / 8])
print(gain_ratio_wage)

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

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

相关文章

【MySQL】MySQL的安装和基本概念

MySQL的安装和基本概念 一、环境安装1、环境及配置2、下载安装 二、基本概念1、主流数据库2、mysql和mysqld的区别和概念(1)概念1:了解CS结构(2)概念2:数据库指的是什么(3)概念3&…

记录:mac pro 16-inch,2019安装ubuntu双系统

需要的装备:u盘,扩展坞、有线键鼠、ext4硬盘 目的:编译aosp 11 1、首先是参照如下文章,分配空间,制作启动盘(测试ubuntu20.04不行,ubuntu22.04正常) https://blog.csdn.net/LBSGKD…

天堂W游戏内核驱动保护简单分析(五)

NP 双机调试分析 1. 调用了NtQuerySystemInformation(SystemKernelDebuggerInformation) 来检测os是否是调试模式的进程 PROCESS ffff920744e6c300 SessionId: 1 Cid: 1a34 Peb: bc82205000 ParentCid: 111c DirBase: 23c33c000 ObjectTable: ffffa9…

【Linux】:进程切换

朋友们、伙计们,我们又见面了,本期来给大家解读一下有关Linux进程切换的知识点,如果看完之后对你有一定的启发,那么请留下你的三连,祝大家心想事成! C 语 言 专 栏:C语言:从入门到精…

PMP考试做对多少题才算及格?

2024年6月PMP考试即将来临,考生除了要复习好考试内容,也要提前了解考试后的成绩查询问题。顺利通过PMP考试是所有参加PMP认证考试考生的目标,那么2024年6月PMP考试怎么才算通过呢? PMP考试改版后试卷总共180道单选题多选题(改版前…

【AI副业教程】日赚5000+涨粉3000,自媒体新玩法!

​StartAI是一款专为设计师打造的基于Photoshop的AI工具,它提供了一系列强大的AI功能如:文生图、生成相似图、线稿上色、无损放大、局部重绘、扩图、艺术融合、提示词、智能擦除、风格选择等。https://www.istarry.com.cn/?sfromHGtsRq 你们能想象吗&a…

【Android安全】AOSP版本对应编号| AOSP版本适配Pixel或Nexus型号 | 驱动脚本下载地址

AOSP版本对应编号 https://source.android.com/docs/setup/about/build-numbers?hlzh-cn#source-code-tags-and-builds 例如android-8.1.0_r1 对应的编号是OPM1.171019.011 可以适配Pixel 2 XL AOSP驱动脚本下载 编译AOSP时,需要Google的驱动,后面才…

【分享】3种方法取消PPT的“限制保护”

PPT如果设置了有密码的“只读方式”,每次打开PPT,都会出现对话框,提示需要输入密码才能修改文件,否则只能以“只读方式”打开。 以“只读方式”打开的PPT就会被限制,无法进行编辑修改等操作。那如果后续不需要“限制保…

SpringBoot+layuimini实现角色权限菜单增删改查(layui扩展组件 dtree)

角色菜单 相关组件方法效果图代码实现资源菜单树组件实现权限树方法js这里我先主要实现权限树的整体实现方法,如果是直接查看使用的话可以只看这里! 后端代码Controlle层代码Service代码及实现类代码Service代码ServiceImpl代码 resourceMapper 代码role…

从零开始傅里叶变换

从零开始傅里叶变换 1 Overview2 傅里叶级数2.1 基向量2.2 三角函数系表示 f ( t ) f(t) f(t)2.2.1 三角函数系的正交性2.2.2 三角函数系的系数 2.3 复指数函数系表示 f ( t ) f(t) f(t)2.3.1 复指数函数系的系数2.3.2 复指数函数系的正交性 2.4 傅里叶级数总结 3 傅里叶变换…

新人学习笔记之(变量)

一、变量概述 1.什么是变量 (1)白话:变量就是一个装东西的盒子 (2)通俗:变量是用于存放数据的容器。我们通过变量获取数据,甚至数据可以修改 2.变量在内存中的储存 (1)本…

如何将手机中的音乐转移到 SD 卡上?轻松传输音乐

概括 如何将音乐从手机转移到 SD 卡?我们的智能手机可以充当个人点唱机,因此有效管理我们的音乐库变得至关重要。无论您是存储空间不足还是只是想整理您的音乐收藏,将音乐从手机传输到 SD 卡都是一个实用的解决方案。 在本指南中&#xff0…

目标检测YOLO实战应用案例100讲-【目标检测】机器视觉(五)

目录 算法原理 机器视觉硬件技术 一、镜头技术 二、摄像机技术 三、图像采集卡(Image Captu

二叉树的递归实现及例题

目录 遍历方式 示例 原理 前序遍历示例 二叉树的节点个数 原理 层序遍历 原理 这样做的目的是 判断完全二叉树 例题 ​编辑 思路 代码 遍历方式 二叉树的遍历方式可分为: 前序遍历:先访问根,访问左子树,在访问右子…

浏览器的下载行为基本原理

浏览器解析 在使用浏览器访问某些资源时,有些资源是直接下载有些资源是直接打开。例如前端的html,xml,css,图片等资源都是直接打开,而txt,excel等文件是直接下载。那么如何控制访问一个资源时是下载文件还…

App Inventor 2 如何接入ChatGPT:国内访问OpenAI的最佳方式

如何接入OpenAI 由于国内无法访问OpenAI,KX上网可选大陆及香港(被屏蔽)以外才行。因此对于大多数人来说,想体验或使用ChatGPT就不太便利,不过App Inventor 2 为我们提供了相对便利的一种方式,即“试验性质…

C# run Node.js

C# run nodejs Inter-Process Communication,IPC Process类 启动Node.js进程,通过标准输入输出与其进行通信。 // n.js// 监听来自标准输入的消息 process.stdin.on(data, function (data) {// 收到消息后,在控制台输出并回复消息console.l…

连锁服装门店补货一般怎样的流程

连锁服装门店的补货流程通常包括以下四个关键步骤: 分析销售数据和库存情况 首先,连锁服装门店需要定期分析销售数据和库存情况。通过销售数据可以了解各款商品的销售情况、热销款式和滞销款式等信息。同时,需要检查每个门店的库存情况&…

【代码随想录】day60

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一、84柱状图中最大的矩形总结 一、84柱状图中最大的矩形 做完接雨水后,这题确实不难了 指针法(超时后根据没通过的样例过滤)&a…

JSON字符串到Map转换的深入探索:Jackson与Gson的实战比较

在现代软件开发中,JSON(JavaScript Object Notation)作为一种轻量级的数据交换格式,几乎无处不在。它以其易于阅读、编写的特性,以及高效的数据存储和传输能力,成为前后端交互、API设计等领域不可或缺的一部…