深度学习——数据预处理

news2024/9/24 1:16:25

一、数据预处理

为了能用深度学习来解决现实世界的问题,我们经常从预处理原始数据开始, 而不是从那些准备好的张量格式数据开始。 在Python中常用的数据分析工具中,我们通常使用pandas软件包。 像庞大的Python生态系统中的许多其他扩展包一样,pandas可以与张量兼容。下面简要介绍了使用pandas预处理原始数据,并将原始数据转换为张量格式的步骤。

1、创建文件存入数据集后读取数据集

举一个例子,我们首先创建一个人工数据集,并存储在CSV(逗号分隔值)文件 …/data/house_tiny.csv中。 以其他格式存储的数据也可以通过类似的方式进行处理。 下面我们将数据集按行写入CSV文件中。

import os
//创建文件并写入数据
os.makedirs(os.path.join('..', 'data'), exist_ok=True)
data_file = os.path.join('..', 'data', 'house_tiny.csv')
with open(data_file, 'w') as f:
    f.write('NumRooms,Alley,Price\n')  # 列名
    f.write('NA,Pave,127500\n')  # 每行表示一个数据样本
    f.write('2,NA,106000\n')
    f.write('4,NA,178100\n')
    f.write('NA,NA,140000\n')

要从创建的CSV文件中加载原始数据集,我们导入pandas包并调用read_csv函数。该数据集有四行三列。其中每行描述了房间数量(“NumRooms”)、巷子类型(“Alley”)和房屋价格(“Price”)。

# 如果没有安装pandas,只需取消对以下行的注释来安装pandas
# !pip install pandas
import pandas as pd
//读取文件数据
data = pd.read_csv(data_file)
print(data)

输出:
输出

2、处理缺失值

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

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

inputs, outputs = data.iloc[:, 0:2], data.iloc[:, 2]
inputs = inputs.fillna(inputs.mean(inputs.mean(numeric_only=True)))
print(inputs)

输出:

在这里插入图片描述

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

inputs = pd.get_dummies(inputs, dummy_na=True)
print(inputs)

输出:
在这里插入图片描述

3. 转换为张量格式

现在inputs和outputs中的所有条目都是数值类型,它们可以转换为张量格式。

import torch

X = torch.tensor(inputs.to_numpy(dtype=float))
y = torch.tensor(outputs.to_numpy(dtype=float))
print(X)
print(y)

输出:
在这里插入图片描述

二、小结

  1. pandas软件包是Python中常用的数据分析工具中,pandas可以与张量兼容。
  2. 用pandas处理缺失的数据时,我们可根据情况选择用插值法和删除法。
  3. 数据预处理是为了改善数据挖掘分析工作,减少时间,降低成本和提高质量。很有必要,就像做菜不洗菜,这样的人做出来的菜质量也不会好在哪里,没人愿意吃。

三、完整代码展示

import torch
import os
# 如果没有安装pandas,只需取消对以下行的注释来安装pandas
# !pip install pandas
import pandas as pd


os.makedirs(os.path.join('..', 'data'), exist_ok=True)
data_file = os.path.join('..', 'data', 'house_tiny.csv')
with open(data_file, 'w') as f:
    f.write('NumRooms,Alley,Price\n')  # 列名
    f.write('NA,Pave,127500\n')  # 每行表示一个数据样本
    f.write('2,NA,106000\n')
    f.write('4,NA,178100\n')
    f.write('NA,NA,140000\n')

data = pd.read_csv(data_file)
print(data)

inputs, outputs = data.iloc[:, 0:2], data.iloc[:, 2]
inputs = inputs.fillna(inputs.mean(numeric_only=True))
print(inputs)

inputs = pd.get_dummies(inputs, dummy_na=True)
print(inputs)

X = torch.tensor(inputs.to_numpy(dtype=float))
y = torch.tensor(outputs.to_numpy(dtype=float))

print(X)
print(y)

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

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

相关文章

es 集群核心概念以及实践

节点概念: 节点是一个Elasticsearch的实例 本质上就是一个JAVA进程一台机器上可以运行多个Elasticsearch进程,但是生产环境一般建议一台机器上只运行一个Elasticsearch实例 每一个节点都有名字,通过配置文件配置,或者启动时候 -…

JVM学习-JVM简介以及其内部结构

目录 1.什么是JVM 2.JVM、JRE、JDK、JavaSE、JavaEE之间的联系 3.JVM的内部结构 4.各部分的作用 4.1 类加载器(附类加载过程导航) 4.2 方法区 4.3 堆(附常量池、运行时常量池、串池的介绍导航) ​ 4.4 虚拟机栈&am…

Android14 - Framework- Configuration的创建和更新

本文描述从启动一个新进程的Activity起,Framwork层Configuration的创建和传导过程。 首先,我们知道所有的Window容器都继承于WindowContainer,而WindowContainer本身是ConfigurationContainer的子类。于此同时,WindowProcessContr…

高级数据结构 <AVL树>

本文已收录至《数据结构(C/C语言)》专栏! 作者:ARMCSKGT 目录 前言正文AVL树的性质AVL树的定义AVL树的插入函数左单旋右单旋右左双旋左右双旋 检验AVL树的合法性关于AVL树 最后 前言 前面我们学习了二叉树,普通的二叉树没有任何特殊性质&…

数据结构面试常见问题之Insert or Merge

😀前言 本文将讨论如何区分插入排序和归并排序两种排序算法。我们将通过判断序列的有序性来确定使用哪种算法进行排序。具体而言,我们将介绍判断插入排序和归并排序的方法,并讨论最小和最大的能区分两种算法的序列长度。 🏠个人主…

pycorrector检测OCR错字实践

参考:https://github.com/shibing624/pycorrector/tree/master/examples/macbert stopwords.txt 添加专业停用词,避免错误 设置自定义词典,避免将正确的词错误检测成错误的词 from pycorrector import Corrector m Corrector() m.set_cus…

《由浅入深学习SAP财务》:第2章 总账模块 - 2.4 会计凭证处理

2.4.1 会计凭证处理的基本概念 会计凭证是企业经济业务在会计上的反映,它是用会计语言表达的一种单据。 典型生产企业的财务凭证创建方式: 企业在实施SAP的过程中,大部分凭证都是自动生成的。要保证这些凭证能准确地生成,必须要满…

mysql 数据库 基本介绍

一 数据 (一)数据是什么 描述事物的符号记录 包括数字,文字、图形、图像、声音、档案记录气 以“记录”形式按统一的格式进行存储 (二)数据的分类 1,结构化的数据 即有固定格式和有限长度的数据。例…

hcip复习总结1

OSI----------- 定义了数据的产生标准 。 7 层 应用 ------- 表示 会话 传输 -----Telnet - 23 ssh---22 http---80 https-443 TCP ---- 传输控制卋议。是一种面向连接的可靠的传输卋议。 UDP---- 用户数据报卋议。是一种非面向连接的丌可靠传输卋议。 保证可靠性&…

面向量产!基于视觉的速度距离估计

面向量产!基于视觉的速度距离估计 论文名称:Vision-based Vehicle Speed Estimation: A Survey 导读 在精确检测车速车距的方案中,视觉方案是非常具有挑战性的,但由于没有昂贵的距离传感器而大幅降低成本,所以潜力巨…

国内智能驾驶芯片领先供应商地平线智能驾驶芯片介绍

地平线国内智能驾驶芯片领先供应商,由国际著名机器学习专家余凯博士于2015年7月创建;2017年12月,地平线即推出了首款 智能芯片征程1和旭日1;2019年8月,宣布量产中国首款车规级智能芯片征程2并于同年10月发 布新一代AIo…

【Git】第二课:git安装和配置

安装 我们伟大祖国有句古话叫巧妇难为无米之炊,还有句话叫工欲善其事必先利其器。所以,在正式的学习之前,我们需要先把git这把利器安装好。 Windows系统 下载安装包 打开Git - Downloading Package页面,根据系统类型32位还是6…

有ai写文案的工具吗?分享5款好用的工具!

在数字化时代,人工智能(AI)已渗透到我们生活的方方面面,包括内容创作领域。AI写文案的软件以其高效、便捷的特点,正逐渐受到广大内容创作者、营销人员、甚至普通用户的青睐。本文将为您盘点几款热门的AI写文案软件&…

Zotero引入英文参考文献作者都是大写字母问题

修改之前是这样的: 修改过程 进入word 打开样式编辑器 打开后,找到这里: 删除 text-case“uppercase” 就可以实现这个样式: 然后我们点击保存,将这个样式文件另存为,然后替换掉原来的文件 源文件在 …

聚焦两会:数字化再加速,VR全景助力制造业转型

近年来,随着信息技术、人工智能、VR虚拟现实等新兴技术的不断涌现,数字化正日益成为推动当今经济发展的新驱动力。在不久前的两会上,数字化经济和创新技术再度成为热门话题: 国务院总理李强作政府工作报告: 要深入推…

误删了Linux系统的libm.so.6文件与libm-2.27.so的软链接导致的开机出现kernel panic的解决方案(图文U盘救援详细教程)

事情起因 最近在做嵌入式视觉,捣弄rknn3588,在推理过程中报了一个错,就是说我的GLIBC的版本太低了,我也没有多想,想着升一下版本就好了,然后找到了这篇博客。【请谨慎操作】Ubuntu18.04升级GLIBC_2.29&…

云效 AppStack + 阿里云 MSE 实现应用服务全链路灰度

作者:周静、吴宇奇、泮圣伟 在应用开发测试验证通过后、进行生产发布前,为了降低新版本发布带来的风险,期望能够先部署到灰度环境,用小部分业务流量进行全链路灰度验证,验证通过后再全量发布生产。本文主要介绍如何通…

Java学习笔记NO.25

T2.编写程序实现乐手弹奏乐器。乐手可以弹奏不同的乐器从而发出不同的声音。可以弹奏的乐器包括二胡、钢琴和琵琶。要求: (1)定义乐器类Instrument,包括方法makeSound() (2)定义乐器类的子类:二胡Erhu、钢琴Piano和小提琴Violin (3)定义乐手类…

2024年【T电梯修理】模拟考试及T电梯修理模拟考试题库

题库来源:安全生产模拟考试一点通公众号小程序 T电梯修理模拟考试是安全生产模拟考试一点通生成的,T电梯修理证模拟考试题库是根据T电梯修理最新版教材汇编出T电梯修理仿真模拟考试。2024年【T电梯修理】模拟考试及T电梯修理模拟考试题库 1、【多选题】…

PPT好看配色

放几个链接!画图时候可以参考!转自知乎 Color Hunt ColorDrop 中国色 Flat UI Colors Coolors