机器学习 day01
文章目录
- 前言
- 一、机器学习的基本概念
- 二、数据集的加载
- 1.玩具数据集
- 2.联网数据集
- 3.本地数据集
- 三、数据集的划分
- 四、特征提取
- 1.稀疏矩阵与稠密矩阵
- 2.字典列表特征提取
- 3.文本特征提取
前言
目前我开始学习机器学习部分的相关知识,通过今天的学习,我掌握了机器学习的基本概念,数据集的加载,划分以及部分特征提取API的使用
一、机器学习的基本概念
- 机器学习通俗来讲就是通过编程,使计算机像人类一样从已有的数据中学习规律并对新的数据进行预测
- 机器学习算法主要包括以下种类:分类,回归,聚类,神经网络,深度学习等等
- 按照学习模式的不同,可以分为:有监督学习,半监督学习,无监督学习和强化学习(这里的“监督”主要是指数据是否给定标签)
- 强化学习是一种特殊的学习模式,它主要通过让模型不断试错来进行训练
二、数据集的加载
以下的章节均使用scikit-learn库进行讨论
1.玩具数据集
- sklearn库中有一些数据量较小并且已经下载到本地的数据集成为玩具数据集
- 加载以上的这些数据集不用进行联网下载,直接导包即可,以下用鸢尾花数据集为例展示:
from sklearn.datasets import load_iris
iris = load_iris()# 特征(x,data)
data = iris.data
print(iris.feature_names) #返回数据集的特征名# 标签(y,target,目标,labels)
target = iris.target
print(iris.target_names) # 返回数据集的标签名
2.联网数据集
- sklearn库中还提供了一些数据量较大的现实数据,需要导包后联网进行下载
- 以下使用sklearn中的新闻数据集为例:
from sklearn.datasets import fetch_20newsgroups
# 加载数据集
news = fetch_20newsgroups(data_home="/.src",subset="train")
# 特征
data = news.data
# 目标
target = news.target
tips:data_home参数指定数据集下载位置,也可以通过datasets.get_data_home()查看默认下载位置;subset指定需要下载数据集的哪个部分
3.本地数据集
- 可以借助Pandas库对本地数据集进行加载
# 加载本地数据集
data = pd.read_csv("./src/ss.csv")
data = data.to_numpy()
print(data)
三、数据集的划分
- 从sklearn.model_selection中导入train_test_split方法,一般按照“8:2”或者“7:3”的比例划分训练集和测试集
from sklearm.model_selection import train_test_split
iris = load_iris()
x = iris.data
y = iris.target
x_train,x_test,y_train,y_test = train_test_split(x,y,train_size=0.8,shuffle=True,random_state=42)
- 以上的代码中的shuffle用于指定是否打乱数据集,random_state用于指定随机数种子
tips:需要注意使用划分函数时必须保证输入的x,y能够一一对应;同时需要注意划分前和划分后的数据类型是相同的,即输入的数据如果是列表则输出的划分也是列表
四、特征提取
- 特征提取是从原始数据中提取出对后续分析、建模或任务具有代表性和区分性信息的过程。
1.稀疏矩阵与稠密矩阵
- 稀疏矩阵指的是大部分元素为零,只有少量非零元素组成的矩阵
- 由于稀疏矩阵中存在大量零元素,在存储时可以只存非零元素,可以节省空间并提高效率
- 三元组表 (Coordinate List, COO):一种稀疏矩阵类型数据,存储非零元素的行,列索引和值
- 稠密矩阵与稀疏矩阵恰好相反,其中主要包括的是非零元素,可以最大程度的保留数据的信息
2.字典列表特征提取
- 由于字典中含有非数值的元素,对于后续操作并不方便,故将其信息提取到稀疏矩阵中进行表示
API:sklearn.feature_extraction.DictVectorizer(sparse=True)
- 参数:
sparse=True返回类型为稀疏矩阵
sparse=False表示返回的是数组,数组可以调用.toarray()方法将稀疏矩阵转换为数组
from sklearn.feature_extraction import DictVectorizer
data = [{'city':'成都', 'age':30, 'temperature':200}, {'city':'重庆','age':33, 'temperature':60}, {'city':'北京', 'age':42, 'temperature':80}]
# 创建DictVectorizer类对象
tool = DictVectorizer(sparse=False)
# fit后transform
data = tool.fit_transform(data)
print(data)
print(transfer.get_feature_names_out())
data_new:
[[ 30. 0. 1. 0. 200.]
[ 33. 0. 0. 1. 60.]
[ 42. 1. 0. 0. 80.]]
特征名字:
[‘age’ ‘city=北京’ ‘city=成都’ ‘city=重庆’ ‘temperature’]
- 代码结果如上,结果数组中用0或1代表对应文字特征是否出现
3.文本特征提取
- 同样,文本数据也不便于进行数据处理,因此,可以使用文本特征提取的API进行处理
API:sklearn.feature_extraction.text.CountVectorizer()
- 该函数是一个类,仍然需要进行对象创建
from sklearn.feature_extraction.text import CountVectorizer
# 词频特征提取,中文需要有空格进行分词
data=["stu is well, stu is great", "You like stu"]
# 创建CountVectorizer对象
cv = CountVectorizer()
# 特征转换
data = cv.fit_transform(data)
print(data)
print(data.toarray())
# 查看特征名
print(cv.get_feature_names_out())
- 如果输入的文本是中文,那么需要手动进行分词,也可以使用jieba分词进行处理后再进行特征提取
import jieba
from sklearn.feature_extraction.text import CountVectorizertext = "Python,启动!"
data = jieba.cut(text)
data = list(data)
data = " ".join(data)
text = [data]tool = CountVectorizer()
text = tool.fit_transform(text)
tips:需要注意jieba.cut()方法返回的是一个生成器,我们可以使用list接进行类型转换,使用join进行拼接
THE END
相关文章:
机器学习 day01
文章目录 前言一、机器学习的基本概念二、数据集的加载1.玩具数据集2.联网数据集3.本地数据集 三、数据集的划分四、特征提取1.稀疏矩阵与稠密矩阵2.字典列表特征提取3.文本特征提取 前言 目前我开始学习机器学习部分的相关知识,通过今天的学习,我掌握了…...
C++STL——priority_queue
优先队列 前言优先队列仿函数头文件 前言 本篇主要讲解优先队列及其底层实现。 优先队列 优先队列的本质就是个堆,其与queue一样,都是容器适配器,不过优先队列是默认为vector实现的。priority_queue的接口优先队列默认为大根堆。 仿函数 …...
DS18B20温度传感器
1.基本信息 测温范围为一55~ 125℃;3.3/5V的供电电压;-10~85内精度较高; 典型的温度转换时间为 750ms(12 位分辨率); 输出最小分辨率:0.0625; 采用单总线数据格式&am…...
《Python星球日记》 第50天:深度学习概述与环境搭建
名人说:路漫漫其修远兮,吾将上下而求索。—— 屈原《离骚》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 目录 一、什么是深度学习?它与传统机器学习的区别1. 深度学习的定义2. 深…...
BUUCTF——Cookie is so stable
BUUCTF——Cookie is so stable 进入靶场 页面有点熟悉 跟之前做过的靶场有点像 先简单看一看靶场信息 有几个功能点 flag.php 随便输了个admin 根据题目提示 应该与cookie有关 抓包看看 构造payload Cookie: PHPSESSIDef0623af2c1a6d2012d57f3529427d52; user{{7*7}}有…...
Java 基础面试题
🧑 博主简介:CSDN博客专家,历代文学网(PC端可以访问:https://literature.sinhy.com/#/literature?__c1000,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,…...
bcm5482 phy 场景总结
1,BCM5482是一款双端口10/100/1000BASE-T以太网PHY芯片,支持多种速率和双工模式。其配置主要通过MDIO(Management Data Input/Output)接口进行,MDIO接口用于访问PHY芯片内部的寄存器,从而配置网络速率、双工模式以及其他相关参数。 a,具体以下面两种场景举例 2. 寄存器和…...
小程序多线程实战
在小程序开发中,由于微信小程序的运行环境限制,原生并不支持传统意义上的多线程编程,但可以通过以下两种核心方案实现类似多线程的并发处理效果,尤其在处理复杂计算、避免主线程阻塞时非常关键: 一、官方方案ÿ…...
PPT图表怎么制作?说5款自己使用过的PPT图表制作工具
PPT图表怎么制作?准备一份吸引人的PPT演示文稿时,图表往往能起到画龙点睛的作用。但是,对于很多人来说,制作既美观又专业的图表却不是一件容易的事情。今天,我们就来聊聊如何利用一些优秀的工具制作PPT图表。 1、亿图图…...
渠道销售简历模板范文
模板信息 简历范文名称:渠道销售简历模板范文,所属行业:其他 | 职位,模板编号:KRZ3J3 专业的个人简历模板,逻辑清晰,排版简洁美观,让你的个人简历显得更专业,找到好工作…...
数据库实验10
设计性实验 1.实验要求 1.编写函数FsumXXX,1~n(参数)求和; GO CREATE FUNCTION Fsum065 (n INT) RETURNS INT AS BEGIN DECLARE sum INT 0 WHILE n > 0 BEGIN SET sum sum n SET n n - 1 END RETURN sum END …...
C#异步Task,await,async和Unity同步协程
标题 TaskawaitasyncUnity协程 Task Task是声明异步任务的必要关键字,也可以使用Task<>泛型来定义Task的返回值。 await await是用于等待一个Task结束,否则让出该线程控制权,让步给其他线程,直到该Task结束才往下运行。 …...
【ML-Agents】ML-Agents示例项目导入unity报错解决
最近在跑ML-Agents的示例代码,无奈往unity中导入项目后,就出现报错。本文简要描述了各个报错的解决方法。 文章目录 一、error CS0234: The type or namespace name InputSystem does not exist in the namespace UnityEngine (are you missing an assem…...
【Web前端开发】HTML基础
Web前端开发是用来直接给用户呈现一个一个的网页,主要包含实现用户的结构(HTML)、样式(CSS)、交互(JavaScript)。然而一个软件通常是由后端和前端完成的。可以查阅文档:HTML 教程 (w…...
spark-哈希join介绍
目录 1. Shuffle Join 和 Hash Join 的复杂度1.1 Shuffle Join1.2 Hash Join 2. 哈希算法的原理2.1 什么是哈希算法?2.2 哈希算法的工作原理2.3 常见哈希函数 3. 哈希算法的弊端3.1 哈希碰撞3.2 哈希分布不均匀3.3 哈希值不可逆 4. 哈希碰撞的处理方法4.1 链地址法4…...
计算机网络与多线程同步机制详解
一、IP地址与子网划分 在互联网世界中,IP地址就像是每个设备的"门牌号",它使得数据包能够准确送达目的地。IP地址的划分与管理就像城市的规划,通过合理的子网划分,能够高效地管理网络资源。 子网掩码的工作原理 子网…...
栈溢出攻击最基本原理
函数在调用的过程中,函数在调用之前呢,会将调用完这个函数之后的下一条命令的地址保存到LR中。 void func() {int a[4];a[6] 100; } 这个函数在用gcc编译的时候是不会报错的,所以我们可以在尝试之后,修改LR的值,让代…...
ChemDraw、InDraw、KingDraw有什么差别?
在化学相关的科研与教学领域,一款好用的结构式编辑器至关重要,ChemDraw因此闻名;但近年来,ChemDraw代理商频繁发送律师函,给学校和企业带来诸多困扰,促使大家纷纷寻找替代软件。InDraw和KingDraw这两款软件…...
NVMe控制器IP设计之接口模块
这是NVMe控制器IP设计系列博客之一,其他的见本博客或csdn搜用户名:tiantianuser。相关视频见B站用户名:专注与守望。 接口转换模块负责完成AXI4接口与控制器内部的自定义接口之间的转换工作。接口转换模块的框图如图1所示。 图1 接口转换示…...
从0开始学linux韦东山教程第三章问题小结(2)
本人从0开始学习linux,使用的是韦东山的教程,在跟着课程学习的情况下的所遇到的问题的总结,理论虽枯燥但是是基础。 摘要关键词:PC远程访问ubuntu配置,ubuntu配置uboot环境,串口控制开发板 本文详细介绍以下问题&…...
JS正则表达式介绍(JavaScript正则表达式)
文章目录 JavaScript正则表达式完全指南正则表达式基础元字符与特殊字符基本元字符. - 点号\d - 数字\D - 非数字\w - 单词字符\W - 非单词字符\s - 空白字符\S - 非空白字符 正则表达式标志常用标志详解g - 全局匹配i - 忽略大小写m - 多行匹配s - 点号匹配所有字符u - Unicod…...
(51单片机)LCD显示红外遥控相关数字(Delay延时函数)(LCD1602教程)(Int0和Timer0外部中断教程)(IR红外遥控模块教程)
前言: 本次Timer0模块改装了一下,注意!!!今天只是简单的实现一下,明天用次功能显示遥控密码锁 演示视频: 在审核 源代码: 如上图将9个文放在Keli5 中即可,然后烧录在…...
关于单片机的基础知识(一)
成长路上不孤单😊😊😊😊😊😊 【14后😊///计算机爱好者😊///持续分享所学😊///如有需要欢迎收藏转发///😊】 今日分享关于单片机基础知识的相关内容…...
操作系统学习笔记第2章 (竟成)
第 2 章 进程管理 【考纲内容】 1.进程与线程: (1) 进程 / 线程的基本概念; (2) 进程 / 线程的状态与转换; (3) 线程的实现:内核支持的线程;线程库支持的线程; (4) 进程与线程的组织与控制; (5)…...
《从零开始:构建你的第一个区块链应用》
一、引言 区块链技术,这个曾经只在金融领域被广泛讨论的技术,如今已经渗透到各个行业。从供应链管理到智能合约,区块链的应用场景越来越丰富。对于开发者来说,理解区块链的基本原理并构建一个简单的区块链应用,是进入这…...
[思维模式-24]:《本质思考力》-5- 马克思主义毛泽东思想揭示了了人类社会运作的普遍规律有哪些?
目录 一、马克思主义毛泽东思想揭示了了人类社会运作的普遍规律有哪些? 1、生产力与生产关系的辩证运动规律 2、阶级斗争与社会革命规律 3、社会形态演变规律 4、人民群众是历史创造者的规律 5、社会基本矛盾运动规律 6、认识与实践的辩证关系规律 二、马克…...
CentOS7.9部署FunASR实时语音识别接口 | 部署商用级别实时语音识别接口FunASR
0. 环境说明 本次在云服务器中部署一套实时语音识别接口,基于阿里开源的FunASR。 云服务器使用莱卡云,4核心4GB内存50GB存储空间,带宽10Mbps。 操作系统使用CentOS7.9 视频演示可以看 云服务器中部署实时语音识别接口 | FunASR在云服务器…...
炫酷粒子系统动画实战:Matplotlib实现银河漩涡效果
炫酷粒子系统动画实战:Matplotlib实现银河漩涡效果 效果演示:银河粒子漩涡核心代码分析1. 粒子系统初始化2. 动画更新函数3. 渲染优化技巧 完整实现代码Matplotlib的动画模块介绍核心类对比核心功能分点注意事项 效果演示:银河粒子漩涡 动…...
MAD-TD: MODEL-AUGMENTED DATA STABILIZES HIGH UPDATE RATIO RL
ICLR 2025 spotlight paper 构建能够在少量样本下学习出优良策略的深度强化学习(RL)智能体一直是一个极具挑战性的任务。为了提高样本效率,近期的研究尝试在每获取一个新样本后执行大量的梯度更新。尽管这种高更新-数据比(UTD&am…...
机器学习第四讲:无监督学习 → 给无标签积木自由组合,发现隐藏规律
机器学习第四讲:无监督学习 → 给无标签积木自由组合,发现隐藏规律 资料取自《零基础学机器学习》。 查看总目录:学习大纲 关于DeepSeek本地部署指南可以看下我之前写的文章:DeepSeek R1本地与线上满血版部署:超详细…...
Vue 两种导航方式
目录 一、声明式导航 二、编程式导航 三、两句话总结 一、声明式导航 1. 传参跳转: <router-link :to"/user?nameCHEEMS&id114514">Query传参 </router-link><router-link :to"/user?参数名1参数值1&参数名2参数值2&a…...
HTTP 的发展史:从前端视角看网络协议的演进
别再让才华被埋没,别再让github 项目蒙尘!github star 请点击 GitHub 在线专业服务直通车GitHub赋能精灵 - 艾米莉,立即加入这场席卷全球开发者的星光革命!若你有快速提升github Star github 加星数的需求,访问taimili…...
Spring 必会之微服务篇(2)
经过上一篇文章的介绍,应该对微服务有了基本的认识,以及为什么要用微服务和微服务要面临的挑战和对应的解决问题,这一期继续聊聊关于微服务的相关知识。 服务拆分 为什么拆 对于大多数的小型项目来说,一般是先采用单体架构,但是随着后面的用户规模变大,业务越来越复杂…...
21.【.NET 8 实战--孢子记账--从单体到微服务--转向微服务】--单体转微服务--身份认证服务拆分规划
从这篇文章开始我们将开始一步一步的拆分现有的单体应用孢子记账项目。按照上一篇文章中的介绍,我们首先把身份认证服务拆分出来。 一、功能分析 在当前的单体应用中,身份认证服务主要负责用户认证、授权以及角色权限管理等核心功能。 在拆分之前&…...
人工智能100问☞第19问:什么是专家系统?
目录 一、通俗解释 二、专业解析 三、权威参考 专家系统是基于知识库(存储专家经验与规则)和推理机(模拟专家逻辑判断)的人工智能程序,能在特定领域(如医疗诊断、工业控制)高效解决复杂问题。 一、通俗解释 专家系统就像个“智能版老师傅…...
AutoGen+Deepseek+chainlit的简单使用
AutoGen 的应用场景 AutoGen 作为一个强大的多智能体协作框架,可用于多种复杂任务: 自动化工作流:构建由多个智能体组成的流水线,例如数据收集、分析、报告生成复杂问题分解:将难题拆解为子任务,分配给不…...
贪心算法专题(Part1)
目录 1. 贪心算法简介 2. 柠檬水找零 3. 将数组和减半的最少操作次数 4. 递增的三元子序列 5. K次取反后最大化的数组和 6. 增减字符串匹配 7. 分发饼干 8. 整数替换 1. 贪心算法简介 2. 柠檬水找零 题目链接:860. 柠檬水找零 - 力扣(LeetCode…...
PyTorch API 4 - 分布式通信、分布式张量
文章目录 分布式通信包 - torch.distributed后端支持PyTorch 内置的后端选择哪个后端?常见环境变量选择使用的网络接口其他NCCL环境变量 基础概念初始化返回类型:boolTCP初始化共享文件系统初始化环境变量初始化方法 初始化后操作关闭处理重新初始化 组D…...
《类和对象(中)》
引言: 上次我们主要学习了类的相关知识,今天我们就来学习类和对象(中),今天也会用到之前学习过的东西,可以说是前面知识的结合,较前面会难一点(打个预防针)。 一:类的默认成员函数…...
SSH终端登录与网络共享
SSH 是较可靠,专为远程登录会话和其他网络服务提供安全性的协议 注意 SSH终端登录的前提是:电脑和板卡都能够通过网络相连接及通信 与连接互联网不一样,SSH可以不用互联网,只要电脑和板卡组成一个小型网络即可 网络方案 如果您…...
n8n系列(5):LangChain与大语言模型应用
引言 n8n作为一个强大的工作流自动化平台,可以通过集成LangChain框架,为用户提供了便捷地利用OpenAI、Azure OpenAI等大语言模型的能力。 本文将深入探讨n8n中的AI集成功能,特别是LangChain节点的使用,以及如何构建智能化的工作流程来解决实际业务问题。 1. n8n的AI集成概…...
springboot3+vue3融合项目实战-大事件文章管理系统-更新用户信息
在一下三个代码处进行修改 在UserController里面增加uadate方法 PutMapping ("/update")public Result update(RequestBody Validated User user){userService.update(user);return Result.success();}在userservice中增加update方法 void update(User user); 然…...
20250510-查看 Anaconda 配置的镜像源
打开 Anaconda Prompt 查看 Anaconda 当前配置的镜像源,使用命令 conda config --show channels这将显示当前配置的通道(channels),即镜像源列表。 此外,还可以使用 conda config --show命令来显示conda的配置信息&…...
CDGP数据治理主观题评分标准与得分策略
1.数据模型题目评分标准 1)准确理解题目中所描述的业务逻辑和需求得[1分] 2)正确使用模型设计方法,使用信息工程、信息建模集成定义、巴克符号、陈氏符号等其中一种得[1分] 3)正确设计实体和属性,题目中涉及的实体数量为25-30个,10个以内得[2分],10-20个得[3分],25个…...
[学习]RTKLib详解:sbas.c与rtcm.c
RTKLib详解:sbas.c与rtcm.c 本文是 RTKLlib详解 系列文章的一篇,目前该系列文章还在持续总结写作中,以发表的如下,有兴趣的可以翻阅。 [学习] RTKlib详解:功能、工具与源码结构解析 [学习]RTKLib详解:pntp…...
【基础IO下】磁盘/软硬链接/动静态库
前言: 文件分为内存文件和磁盘文件。磁盘文件是一个特殊的存在,因为磁盘文件不属于冯诺依曼体系,而是位于专门的存储设备中。因此,磁盘文件存在的意义是将文件更好的存储起来,一边后续对文件进行访问。在高效存储磁盘…...
JAVA练习题(1) 卖飞机票
import java.util.Scanner; public class Main {public static void main(String[] args) {Scanner scnew Scanner(System.in);System.out.println("请输入飞机的票价:");int pricesc.nextInt();System.out.println("请输入月份:");…...
SpringBoot框架开发网络安全科普系统开发实现
概述 基于SpringBoot框架的网络安全科普系统开发指南,该系统集知识科普、案例学习、在线测试等功能于一体,本文将详细介绍系统架构设计、功能实现及技术要点,帮助开发者快速构建专业的网络安全教育平台。 主要内容 系统功能架构 本系统采…...
机器学习 day02
文章目录 前言一、TF-IDF特征词重要度特征提取二、无量纲化处理1.最大最小值归一化2.normalize归一化3.StanderScaler标准化 前言 通过今天的学习,我掌握了TF-IDF特征词重要度特征提取以及无量纲化处理的相关知识和用法 一、TF-IDF特征词重要度特征提取 机器学习算…...
《AI大模型应知应会100篇》第53篇:Hugging Face生态系统入门
第53篇:Hugging Face生态系统入门 ——从模型获取到部署的全流程实战指南 📌 摘要 在人工智能快速发展的今天,Hugging Face已成为自然语言处理(NLP)领域最具影响力的开源平台之一。它不仅提供丰富的预训练模型、强大…...