当前位置: 首页 > news >正文

机器学习实战记录(1)

决策树——划分数据集

def splitDataSet(dataSet, axis, value):		retDataSet = []										#创建返回的数据集列表for featVec in dataSet: 							#遍历数据集if featVec[axis] == value:reducedFeatVec = featVec[:axis]				#去掉axis特征reducedFeatVec.extend(featVec[axis+1:]) 	#将符合条件的添加到返回的数据集retDataSet.append(reducedFeatVec)return retDataSet		  							#返回划分后的数据集

这个代码就是按axis划分,然后每次把它去掉。

1.

def splitDataSet(dataSet, axis, value):
  • dataSet:这是输入的数据集,通常是一个二维列表,其中每个子列表代表一个样本,最后一项通常是标签(分类)。
  • axis:这个参数是整数,表示当前划分的特征的索引位置。假设我们的数据集有多个特征(列),axis 就指定了你想要按哪一个特征来划分数据集。
  • value:这个参数是我们在数据集中按 axis 这个特征划分时,要求该特征的取值为 value。即:我们希望选择所有在此特征上值为 value 的样本。

返回的 retDataSet

retDataSet 是一个空列表,用来保存符合条件的子集。函数会遍历 dataSet,每次找到符合条件的样本(即特征 axis 的值为 value),就将该样本的特征信息(去掉当前特征)加入到 retDataSet

2.

retDataSet = []  # 创建返回的数据集列表

  • 创建一个空的列表 retDataSet,用来保存符合条件的子集。
 

python

复制代码

for featVec in dataSet: # 遍历数据集中的每一个样本

  • 使用 for 循环遍历 dataSet 中的每一行数据(每个 featVec)。每个 featVec 是一个样本,它包含多个特征值,通常最后一个元素是标签(类别)

if featVec[axis] == value:

  • 对于每一个样本 featVec,判断该样本的特征 axis 对应的取值是否等于 value。如果该样本在 axis 特征上的取值与 value 相等,就满足条件,应该将该样本加入返回的子集 retDataSet 中。

reducedFeatVec = featVec[:axis] # 去掉当前特征(axis)

  • 通过 featVec[:axis] 获取当前样本的特征,去掉 axis 位置的特征。比如,如果数据集中有5个特征(第0列到第4列),且 axis = 2,那么 featVec[:axis] 就是将样本中第2列之前的特征提取出来(不包括第2列),即 [featVec[0], featVec[1]]

reducedFeatVec.extend(featVec[axis+1:]) # 将符合条件的特征值部分加入返回的数据集

  • featVec[axis+1:] 表示去掉了 axis 位置的特征后的部分,即从 axis+1 到最后的特征。将这部分特征信息添加到 reducedFeatVec 中。extend 方法会将一个列表的元素加入到另一个列表中,确保 reducedFeatVec 包含了除了当前特征 axis 外的所有特征。

return retDataSet # 返回划分后的数据集

  • 最后,函数返回划分后的子集 retDataSet,它包含了所有在特定特征 axis 上取值为 value 的样本(每个样本去掉了 axis 特征)。

假设有如下数据集(dataSet):

dataSet = [['青年', '否', '否', '一般', '不放贷'],['青年', '否', '是', '好', '放贷'],['青年', '是', '否', '好', '放贷'],['青年', '是', '是', '一般', '不放贷'],['中年', '否', '否', '一般', '不放贷'],['中年', '否', '是', '好', '放贷'],['中年', '是', '否', '好', '放贷'],['中年', '是', '是', '一般', '不放贷'],['老年', '否', '否', '一般', '不放贷'],['老年', '否', '是', '好', '放贷'],['老年', '是', '否', '好', '放贷'],['老年', '是', '是', '一般', '不放贷']
]

假设我们希望根据第二个特征“是否有工作”(axis=1)进行划分,我们调用 splitDataSet 函数,并指定取值

result = splitDataSet(dataSet, 1, '否')

在这个例子中,axis=1 表示我们正在根据第二个特征(“是否有工作”)进行划分,value='否' 表示我们选择特征值为“否”的样本。调用 splitDataSet 函数后,返回的 result 是:

[['青年', '否', '否', '一般', '不放贷'],['青年', '否', '是', '好', '放贷'],['中年', '否', '否', '一般', '不放贷'],['中年', '否', '是', '好', '放贷'],['老年', '否', '否', '一般', '不放贷'],['老年', '否', '是', '好', '放贷']
]

这些样本的第二个特征都是“否”。可以看到,函数成功地将数据集按第二个特征值为“否”进行划分,且去除了“是否有工作”这一特征,返回了包含其余特征的子集。

相关文章:

机器学习实战记录(1)

决策树——划分数据集 def splitDataSet(dataSet, axis, value): retDataSet [] #创建返回的数据集列表for featVec in dataSet: #遍历数据集if featVec[axis] value:reducedFeatVec featVec[:axis] #去掉axis特征reducedFeatVec.extend(featVec[axis1…...

PHP8解析php技术10个新特性

PHP8系列是 PHP编程语言的最新主线版本,带来了许多激动人心的新特性和改进。作为一名PHP开发者,了解这些更新能够帮助你编写更高效、安全和现代的代码。 8的核心技术知识点,包括语言特性、性能优化、安全增强以及开发者工具的改进。 Just-In…...

C++模版特化和偏特化

什么是模版特化 特化的含义:所谓特化,就是将泛型搞得具体化一些,从字面上来解释,就是为已有的模板参数进行一些使其特殊化的指定,使得以前不受任何约束的模板参数,或受到特定的修饰(例如const或…...

Simulink中Model模块的模型保护功能

在开发工作过程中,用户为想要知道供应商的开发能力,想要供应商的模型进行测试。面对如此要求,为了能够尽快拿到定点项目,供应商会选择一小块算法或是模型以黑盒的形式供客户测试。Simulink的Model模块除了具有模块引用的功能之外&…...

Linux常用工具的使用(2):文本编辑器的使用

实验题目:Linux常用工具的使用(2):文本编辑器的使用 实验目的: (1)理解文本编辑器vi的工作模式; (2)掌握文本编辑器的使用方法 实验内容: &a…...

【StarRocks】starrocks 3.2.12 【share-nothing】 多Be集群容器化部署

文章目录 一. 集群规划二.docker compose以及启动脚本卷映射对于网络环境变量 三. 集群测试用户新建、赋权、库表初始化断电重启扩容 BE 集群 一. 集群规划 部署文档 https://docs.starrocks.io/zh/docs/2.5/deployment/plan_cluster/ 分类描述FE节点1. 主要负责元数据管理、…...

联想ThinkServer服务器主要硬件驱动下载

联想ThinkServer服务器主要硬件驱动下载: 联想ThinkServer服务器主要硬件Windows Server驱动下载https://newsupport.lenovo.com.cn/commonProblemsDetail.html?noteid156404#D50...

Ansys Zemax Optical Studio 中的近视眼及矫正

近视,通常称为近视眼,是一种眼睛屈光不正,导致远处物体模糊,而近处物体清晰。这是一种常见的视力问题,通常发生在眼球过长或角膜(眼睛前部清晰的部分)过于弯曲时。因此,进入眼睛的光…...

三次握手后的数据传输

一旦三次握手成功完成,TCP连接便正式建立,双方可以开始传输数据。在这个阶段,TCP协议利用其独特的可靠性和流控机制,确保数据的有序、无差错传输。 序列号与确认号:在数据传输过程中,TCP会为每个报文段分配…...

企业OA管理系统:Spring Boot技术实现与案例研究

摘要 随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。本文介绍了企业OA管理系统的开发全过程。通过分析企业OA管理系统管理的不足,创建了一个计算机管理企业OA管理系统的方案。文章介绍了企业OA管理系统的系统分析部…...

(免费送源码)计算机毕业设计原创定制:Java+JSP+HTML+JQUERY+AJAX+MySQL springboot计算机类专业考研学习网站管理系统

摘 要 大数据时代下,数据呈爆炸式地增长。为了迎合信息化时代的潮流和信息化安全的要求,利用互联网服务于其他行业,促进生产,已经是成为一种势不可挡的趋势。在大学生在线计算机类专业考研学习网站管理的要求下,开发一…...

Go语言工程测试的基本规则和流程

Go语言工程测试的基本规则和流程 在Go语言的工程实践中,测试是确保软件质量和稳定性的关键环节。本文将深入探讨Go语言中的工程测试,包括单元测试、性能测试和集成测试等,以及它们的编写规则、组织方式和执行流程。 单元测试(Unit Testing) 单元测试是针对软件中最小可…...

阿里云cdn配置记录和nodejs手动安装

cdn 登录阿里云 域名解析权限 开启cdn,接引导流程, 源可以设置 域名或者ip等 配置好域名解析 上传https证书 图片不显示,后端开发需要配置 回源配置的回源协议 ,配置跟随客服端【如果浏览器多次重定向错误,客服或者改…...

PTC在电池中的作用

一、电池安全性的重要性 在现代电子设备中,电池作为能源储存和供应的核心组件,其性能和安全性一直是关注的重点。尤其是在锂离子电池等高能量密度电池的广泛应用中,电池发生过流、过热、短路等问题可能导致电池失效,甚至引发热失控和火灾等安全事故。因此,如何提高电池的…...

嵌入式C语言面试题 - 2024/11/18

欢迎找我进行职业规划,超值的自我投资 -> 嵌入式软件工程师一对一指导 转载请注明来源: 下边代码,x值是? int x10;x 3x%(3); 解析: 初始值:x 10 计算 x % 3: 10 % 3 的结果是 1&#…...

理解原子变量之四:可见性、memory_order_acquire与 memory_order_release

在理解原子变量之二:从volatile到内存序-进一步的认识-CSDN博客里的实例3里面,我们看到,如果在一个线程里修改原子变量done,另一个线程读取done时,就会看到这个变化。这就是原子变量的可见性。其实这个认识是不全面的。…...

requests的session

如果有cookie,能够自动关联,可以使用如下: session对象能够帮我们自动管理和传递cookie,但是后续的请求,必须使用session对象发起 session requests.session() re session.get() re session.post()或 session reque…...

MySQL面试题补

内连接和外连接的区别: ○1.功能和用法不同:内连接是连接两表都满足情况的数据;而外连接是以一边的表为主表,另一个表只显示匹配的行; ○2.用途:内连接一般是用于检索不同表需要根据共同的列值进行匹配的&a…...

Windows系统编程 - 进程遍历

文章目录 前言进程的遍历CreateToolhelp32SnapshotProcess32FirstProcess32Next进程遍历 总结 前言 各位师傅好,我是qmx_07,今天给大家讲解进程遍历的相关知识点 进程的遍历 快照:使用vmware虚拟机的时候,经常需要配置环境服务…...

从零开始创建一个 Vue3+Vite+TS+Eslint项目

一、创建一个最简单的 Vue3 项目 pnpm create vuelatest只设置项目名,其它任何功能都不加。 二、引入 Typescript 详见 Vue3 Vite 项目引入 Typescript 三、引入 Eslint Pritter 详见 Vue3 Vite TS 项目引入 Eslint Pritter 四、配置自动导入插件引入 El…...

RestClient

什么是RestClient RestClient 是 Elasticsearch 官方提供的 Java 低级 REST 客户端,它允许HTTP与Elasticsearch 集群通信,而无需处理 JSON 序列化/反序列化等底层细节。它是 Elasticsearch Java API 客户端的基础。 RestClient 主要特点 轻量级&#xff…...

CentOS下的分布式内存计算Spark环境部署

一、Spark 核心架构与应用场景 1.1 分布式计算引擎的核心优势 Spark 是基于内存的分布式计算框架,相比 MapReduce 具有以下核心优势: 内存计算:数据可常驻内存,迭代计算性能提升 10-100 倍(文档段落:3-79…...

深入理解JavaScript设计模式之单例模式

目录 什么是单例模式为什么需要单例模式常见应用场景包括 单例模式实现透明单例模式实现不透明单例模式用代理实现单例模式javaScript中的单例模式使用命名空间使用闭包封装私有变量 惰性单例通用的惰性单例 结语 什么是单例模式 单例模式(Singleton Pattern&#…...

2025 后端自学UNIAPP【项目实战:旅游项目】6、我的收藏页面

代码框架视图 1、先添加一个获取收藏景点的列表请求 【在文件my_api.js文件中添加】 // 引入公共的请求封装 import http from ./my_http.js// 登录接口(适配服务端返回 Token) export const login async (code, avatar) > {const res await http…...

Ascend NPU上适配Step-Audio模型

1 概述 1.1 简述 Step-Audio 是业界首个集语音理解与生成控制一体化的产品级开源实时语音对话系统,支持多语言对话(如 中文,英文,日语),语音情感(如 开心,悲伤)&#x…...

企业如何增强终端安全?

在数字化转型加速的今天,企业的业务运行越来越依赖于终端设备。从员工的笔记本电脑、智能手机,到工厂里的物联网设备、智能传感器,这些终端构成了企业与外部世界连接的 “神经末梢”。然而,随着远程办公的常态化和设备接入的爆炸式…...

嵌入式学习笔记DAY33(网络编程——TCP)

一、网络架构 C/S (client/server 客户端/服务器):由客户端和服务器端两个部分组成。客户端通常是用户使用的应用程序,负责提供用户界面和交互逻辑 ,接收用户输入,向服务器发送请求,并展示服务…...

LRU 缓存机制详解与实现(Java版) + 力扣解决

📌 LRU 缓存机制详解与实现(Java版) 一、📖 问题背景 在日常开发中,我们经常会使用 缓存(Cache) 来提升性能。但由于内存有限,缓存不可能无限增长,于是需要策略决定&am…...

NPOI Excel用OLE对象的形式插入文件附件以及插入图片

static void Main(string[] args) {XlsWithObjData();Console.WriteLine("输出完成"); }static void XlsWithObjData() {// 创建工作簿和单元格,只有HSSFWorkbook,XSSFWorkbook不可以HSSFWorkbook workbook new HSSFWorkbook();HSSFSheet sheet (HSSFSheet)workboo…...

[大语言模型]在个人电脑上部署ollama 并进行管理,最后配置AI程序开发助手.

ollama官网: 下载 https://ollama.com/ 安装 查看可以使用的模型 https://ollama.com/search 例如 https://ollama.com/library/deepseek-r1/tags # deepseek-r1:7bollama pull deepseek-r1:7b改token数量为409622 16384 ollama命令说明 ollama serve #&#xff1a…...