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

深度学习基础知识-02 数据预处理

深度学习的数据预处理通常包括:
1.数据清洗:去除错误或不完整的数据。
2.归一化:调整数据范围,如将像素值缩放到0-1。
3.数据增强:通过旋转、缩放等方法增加数据多样性。
4.数据划分:将数据分为训练集、验证集和测试集。
5.编码:将分类数据转换为机器学习模型可以处理的形式,如独热编码。

CSV文件预处理:
写入csv文件

import os  # 导入os模块,用于操作文件和目录# 创建一个名为'data'的目录,该目录位于当前工作目录的上一级目录中
# 如果目录已存在,exist_ok=True参数确保不会抛出错误
os.makedirs(os.path.join('..','data'),exist_ok=True)# 定义一个变量data_file,存储文件的完整路径
# 文件名为'home_tiny.txt',位于上一级目录中的'data'文件夹内
data_file=os.path.join('..','data','home_tiny.txt')# 使用with语句打开文件,确保文件操作完成后自动关闭文件
# 'w'模式表示写入模式,如果文件已存在,则覆盖原有内容
with open(data_file,'w') as f:f.write('NumRooms,Ally,price\n')f.write('NA,PAve,127500\n')f.write('2,NA,197500\n')f.write('5,NA,177500\n')f.write('NA,NA,165500\n')

读csv文件

import pandas as pddata =pd.read_csv('../data/home_tiny.txt') # 使用pandas的read_csv函数读取位于上一级目录中'data'文件夹内的'home.tiny.txt'文件
print(data)

数据补全:注意,“NaN”项代表缺失值。 为了处理缺失的数据,典型的方法包括插值法和删除法, 其中插值法用一个替代值弥补缺失值,而删除法则直接忽略缺失值。

通过位置索引iloc,我们将data分成inputs和outputs, 其中前者为data的前两列,而后者为data的最后一列。 对于inputs中缺少的数值,我们用同一列的均值替换“NaN”项。

# 使用iloc选择器从data中提取前两列作为输入特征(inputs)
# 即选择第0列和第1列(注意Python是从0开始计数的)
inputs, outputs = data.iloc[:, 0:2], data.iloc[:, 2]# 对inputs中的缺失值进行填充
# 使用fillna方法,将缺失值替换为每列的平均值
inputs = inputs.fillna(inputs.mean())

对于inputs中的类别值或离散值,我们将“NaN”视为一个类别。 由于“巷子类型”(“Alley”)列只接受两种类型的类别值“Pave”和“NaN”, pandas可以自动将此列转换为两列“Alley_Pave”和“Alley_nan”。 巷子类型为“Pave”的行会将“Alley_Pave”的值设置为1,“Alley_nan”的值设置为0。 缺少巷子类型的行会将“Alley_Pave”和“Alley_nan”分别设置为0和1。

# 使用get_dummies函数对inputs进行独热编码
# dummy_na=True表示将缺失值也作为一个类别进行编码
inputs = pd.get_dummies(inputs, dummy_na=True)NumRooms  Alley_Pave  Alley_nan
0       3.0           1          0
1       2.0           0          1
2       4.0           0          1
3       3.0           0          1

现在inputs和outputs中的所有条目都是数值类型,它们可以转换为张量格式。 当数据采用张量格式后,可以在后续进一步操作。

# 将输入特征inputs转换为NumPy数组,并指定数据类型为float
# to_numpy()函数将DataFrame转换为数组,dtype=float确保数据类型为浮点数
X = np.array(inputs.to_numpy(dtype=float))# 将输出标签outputs转换为NumPy数组,并指定数据类型为float
# to_numpy()函数将DataFrame转换为数组,dtype=float确保数据类型为浮点数
y = np.array(outputs.to_numpy(dtype=float))(array([[3., 1., 0.],[2., 0., 1.],[4., 0., 1.],[3., 0., 1.]], dtype=float64),array([127500., 106000., 178100., 140000.], dtype=float64))

热编码(One-Hot Encoding)是一种处理分类数据的方法,常用于机器学习和统计分析中。其目的是将分类变量(如文本或标签)转换为一种格式,使得这些变量可以被算法有效处理。

相关文章:

深度学习基础知识-02 数据预处理

深度学习的数据预处理通常包括: 1.数据清洗:去除错误或不完整的数据。 2.归一化:调整数据范围,如将像素值缩放到0-1。 3.数据增强:通过旋转、缩放等方法增加数据多样性。 4.数据划分:将数据分为训练集、验证…...

【CTF刷题9】2024.10.19

[MoeCTF 2021]babyRCE 考点&#xff1a;关键词过滤&#xff08;绕过方法参考往期博客&#xff09; 来源&#xff1a;nssctf <?php$rce $_GET[rce]; if (isset($rce)) {if (!preg_match("/cat|more|less|head|tac|tail|nl|od|vi|vim|sort|flag| |\;|[0-9]|\*|\|\%|\&g…...

WPF中的Setter

在 WPF (Windows Presentation Foundation) 中&#xff0c;Setter 是一个定义控件属性值的标记&#xff0c;通常用在 Style 或 Template 中。Setter 用于指定当某些条件满足时&#xff0c;控件的属性应该如何设置。以下是 Setter 的一些关键点&#xff1a; 属性设置&#xff1a…...

RabbitMQ下载与配置

安装Erlang Erlang 下载地址如下&#xff1a; https://erlang.org/download/otp_versions_tree.html 安装 RabbitMQ RabbitMQ 下载地址如下&#xff1a; https://www.rabbitmq.com/install-windows.html 查看服务&#xff0c;服务已经正常启动 打开Command Prompt 输入rabb…...

【数据结构与算法】力扣 54. 螺旋矩阵

问题描述 给你一个 m 行 n 列的矩阵 matrix &#xff0c;请按照 顺时针螺旋顺序 &#xff0c;返回矩阵中的所有元素。 示例 1&#xff1a; 输入&#xff1a; matrix [[1,2,3],[4,5,6],[7,8,9]] 输出&#xff1a; [1,2,3,6,9,8,7,4,5]示例 2&#xff1a; 输入&#xff1a; ma…...

速通不了的人工智能

下面是一个详细且系统的人工智能学习框架,涵盖了从基础理论到实际应用的各个方面。这个框架包括理论学习、编程实践、项目实战和资源推荐。为了帮助你更好地理解和应用,我会提供一些具体的代码示例。 人工智能学习框架 1. 基础理论 1.1 数学基础 线性代数:向量、矩阵、特…...

微信新功能上线,找工作也能“附近”搞定

大家好&#xff0c;我是小悟 你们听说了吗&#xff1f;微信又双叒叕出新功能啦&#xff01;这次可不是什么微整形、小游戏之类的小打小闹&#xff0c;而是实实在在的大招——查找附近的工作&#xff01;没错&#xff0c;你没听错&#xff0c;就是那个在你家门口就能找到工作的…...

CANoe与C#联合仿真方案

引言 CANoe作为一款强大的网络仿真工具,能够模拟各种通信协议,尤其是在汽车领域的CAN、LIN、Ethernet等协议。而C#作为一种广泛使用的编程语言,能够为CANoe提供灵活的用户界面和逻辑控制。本文将探讨如何将CANoe与C#结合,实现高效的联合仿真方案。 1. 系统架构 联合仿真…...

公交信息在线查询系统|基于java和小程序的公交信息在线查询系统小程序设计与实现(源码+数据库+文档)

公交信息在线查询系统小程序 目录 基于java和小程序的公交信息在线查询系统小程序设计与实现 一、前言 二、系统功能设计 三、系统实现 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取&#xff1a; 博主介绍&#xff1a;✌️大厂…...

[LeetCode] 1162. 地图分析

题目描述&#xff1a; 你现在手里有一份大小为 n x n 的 网格 grid&#xff0c;上面的每个 单元格 都用 0 和 1 标记好了。其中 0 代表海洋&#xff0c;1 代表陆地。 请你找出一个海洋单元格&#xff0c;这个海洋单元格到离它最近的陆地单元格的距离是最大的&#xff0c;并返…...

CentOS 上安装 MySQL(附卸载教程)

在 CentOS 上安装 MySQL 5.7&#xff1a; 1. 添加 MySQL Yum 存储库 首先&#xff0c;确保你已添加 MySQL Yum 存储库。因为你已经安装了 mysql57-community-release-el7-11.noarch&#xff0c;如果需要重新添加&#xff0c;可以使用以下命令&#xff1a; sudo yum localins…...

如何在Matlab界面中添加日期选择器?

在Matlab界面中添加日期选择器&#xff0c;可以让用户通过图形界面方便地选择日期。Matlab提供了uidatepicker函数&#xff0c;允许用户在App Designer设计的GUI中添加日期选择器组件。以下是如何在Matlab界面中添加日期选择器的详细步骤&#xff1a; 1. 使用App Designer添加…...

保险系统的部分模式01

Wolfgang Keller 著&#xff0c;liwenhua 译 摘要 对于许多保险公司来说&#xff0c;要建立一个能够缩短产品周期&#xff0c;柔性灵活的保险系统可谓是一个挑战。虽然这个系统有着巨大的市场&#xff0c;围绕这些相同的问题开展了许多项目&#xff0c;但是这些项目似乎仍然有…...

用你的手机/电脑运行文生图方案

随着ChatGPT和Stable Diffusion的发布&#xff0c;最近一两年&#xff0c;生成式AI已经火爆全球&#xff0c;已然成为移动互联网后一个重要的“风口”。就图片/视频生成领域来说&#xff0c;Stable Diffusion模型发挥着极其重要的作用。由于Stable Diffusion模型参数量是10亿参…...

L1正则化详解

目录 L1 正则化优缺点&#xff1a;适合使用L1正则化的情况&#xff1a;不适合使用L1正则化的情况&#xff1a;参考 L1 正则化 L1正则化是一种常用的正则化技术&#xff0c;也被称为Lasso正则化&#xff08;Least Absolute Shrinkage and Selection Operator&#xff09;。它通…...

C语言在数据库开发中的应用及其代码实践

数据库作为现代软件开发中不可或缺的一部分&#xff0c;其开发和维护工作至关重要。C语言&#xff0c;以其接近硬件的特性和高效率&#xff0c;被广泛应用于数据库系统的核心组件开发中。本文将探讨C语言在数据库开发中的应用&#xff0c;并提供实际的代码示例。 C语言在数据库…...

java maven

参考链接 maven相关配置 maven依赖管理 依赖具有传递性。 maven依赖范围 maven的生命周期 分为三个相互独立的生命周期&#xff1a; 在执行对应生命周期的操作时&#xff0c;需要进行前面的操作。比如&#xff0c;执行打包install的时候&#xff0c;会执行test。...

Java爬虫:获取直播带货数据的实战指南

在当今数字化时代&#xff0c;直播带货已成为电商领域的新热点&#xff0c;通过直播平台展示商品并进行销售&#xff0c;有效促进了产品的曝光和销售量的提升。然而&#xff0c;如何在直播带货过程中进行数据分析和评估效果&#xff0c;成为了摆在商家面前的一个重要问题。本文…...

python 列表、元组、字典易误区

一、删除元素 1、删除列表中的元素 pop del (1)pop(索引) 用于删除指定索引处的元素&#xff0c;并返回被删除的元素的值。默认删除最后一个元素。 eg:list.pop() (2)del 用于删除列表中的指定索引处的元素&#xff0c;或者删除整个列表变量。del操作没有返回值。 eg:del a[1:…...

wireshark或tshark提取tcpdump捕获的数据包(附python脚本自动解析文件后缀)

tcpdump 捕获数据包后&#xff0c;保存的文件通常会被命名为 capture.pcap&#xff08;或其他你指定的名称&#xff09;&#xff0c;并存储在你运行命令的当前目录中。以下是如何使用 tcpdump 进行流量捕获&#xff0c;并找到和使用捕获文件的详细步骤。 1. 使用 tcpdump 捕获…...

【WRF-Chem编译安装】使用集群系统环境编译安装WRF-Chem

目录 安装编译思路 编译错误记录 尝试编译器:Intel 尝试编译器:Gun 附录:完整自动化编译脚本 参考 安装编译思路 使用集群系统自带的 module 加载 MPI 和编译器: module avail # 查看可用的模块 module load compiler/intel # (举例) 加载编译器 module load mpi/open…...

解锁毕业论文新姿势:好写作AI,你的学术“智能外挂”!

在学术的江湖里&#xff0c;毕业论文就像是一场终极BOSS战&#xff0c;每一位学子都是手持“知识之剑”的勇士&#xff0c;誓要斩断迷茫&#xff0c;赢得学术的桂冠。但面对浩如烟海的文献、错综复杂的逻辑、还有那令人头疼的格式规范&#xff0c;不少勇士都感到力不从心。别怕…...

NCM格式加密破解:技术侦探教你三步解锁音乐自由

NCM格式加密破解&#xff1a;技术侦探教你三步解锁音乐自由 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 当你从网易云音乐下载喜爱的歌曲时&#xff0c;是否遇到过这样的困境&#xff1a;这些以.NCM为扩展名的文件像被施了魔法的…...

颈腰不适乱按摩只会越治越糟,颈椎病腰间盘突出防治要找对方法,从根源到防护全攻略在这里。

生活中很多人出现颈肩腰腿痛&#xff0c;第一反应就是找按摩店放松、贴膏药缓解&#xff0c;可症状不仅没好转&#xff0c;反而反反复复加重&#xff0c;这是因为没有认清颈椎病、腰椎间盘突出的发病根源&#xff0c;用错了防治方法。作为职场人群最高发的脊柱疾病&#xff0c;…...

PINCE代码分析功能:反汇编与参考调用查找的终极指南

PINCE代码分析功能&#xff1a;反汇编与参考调用查找的终极指南 【免费下载链接】PINCE Reverse engineering tool for linux games 项目地址: https://gitcode.com/gh_mirrors/pi/PINCE PINCE是一款专为Linux游戏设计的逆向工程工具&#xff0c;集成了强大的代码分析功…...

MySQL数据库高级特性:

MySQL数据库高级特性&#xff1a;创建测试表&#xff1a;create database jx character set utf8use jx;my> desc users;主键&#xff1a;特性&#xff1a;唯一标识的一条记录不能有重复值一个表有一个主键可以是单列或多列的组合自动定义为NOT NULL作用&#xff1a;&#x…...

discuz所有下载版本和升级工具,2.0版本

此文章仅作参考&#xff0c;已无效&#xff0c;移步到3.0版本 下载版本&#xff1a; &#xff01;&#xff01;&#xff01;升级UCenter和升级工具使用&#xff08;都在里面&#xff09;Discuz! X3.2 - X3.4 升级至 Discuz! X3.5 详细教程 - 程序发布 - Powered by Discuz! …...

IoT设备渗透测试实战:从命令注入到流量监控的完整流程(附避坑指南)

IoT设备渗透测试实战&#xff1a;从命令注入到流量监控的完整流程&#xff08;附避坑指南&#xff09; 1. IoT渗透测试的特殊性 IoT设备的渗透测试与传统PC环境存在显著差异&#xff0c;这些差异直接影响着测试策略的选择和工具的使用。首先&#xff0c;IoT设备通常运行精简版的…...

这份数据挖掘方法实战选择指南,将带你掌握实战中如何选对方法,用好数据挖掘,助力你在实战中斩获佳绩。

好的&#xff0c;针对“机器学习中数据挖掘方法与选择&#xff0c;结合实战使用与实例选择详解”这一问题&#xff0c;我们首先进行解构与推演。 核心问题在于如何在实战中为不同数据集和目标选择合适的预处理与挖掘方法。 答案将聚焦于一个从目标出发、数据驱动、迭代验证的…...

SOONet模型数据库课程设计项目:构建视频内容管理分析系统

SOONet模型数据库课程设计项目&#xff1a;构建视频内容管理分析系统 最近和几个计算机专业的同学聊天&#xff0c;发现他们正为数据库课程设计选题发愁。老师要求项目既要体现数据库设计的核心知识&#xff0c;又最好能结合一些前沿技术&#xff0c;做出点新意来。这让我想起…...