数据预处理

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') #os.path.join('..', 'data'):生成一个路径字符串,表示当前目录的父目录下的data文件夹。
#os.makedirs(..., exist_ok=True):创建这个目录。如果目录已经存在,exist_ok=True参数会防止抛出错误。
# os.path.join('..', 'data', 'house_tiny.csv'):生成一个路径字符串,表示data文件夹下的house_tiny.csv文件。
# with open(data_file, 'w') as f:以写入模式打开文件。如果文件已存在,会被覆盖。
# f.write(...):向文件写入字符串。每行字符串表示一个数据样本,包括列名和数据。

从创建的csv文件中加载原始数据集

import pandas as pd
data=pd.read_csv(data_file)
print(data)

处理缺失数据,可以插值以及删除

# 插值
#对于每列中的缺失值,使用该列的平均值进行填充
inputs,outputs=data.iloc[:,0:2],data.iloc[:,2]
inputs=inputs.fillna(inputs.mean())
print(inputs)
#fillna方法填充inputs中的缺失值(NA)
#inputs.mean():计算inputs中每列的平均值

对于inputs中的类别值(离散值),我们将“NAN”视为一个类别

inputs=pd.get_dummies(inputs,dummy_na=True)
print(inputs) # pd.get_dummies(inputs):这个函数将inputs DataFrame中的分类变量转换为虚拟变量。对于每个分类变量的每个类别,
# 都会创建一个新的列,值为0或1,表示该类别是否存在于原始数据中。例如,如果Alley列有值Pave和NA,
# 则会生成两个新的列:Alley_Pave和Alley_NA。 # dummy_na=True:
# 这个参数指示pd.get_dummies在处理缺失值(NA)时,也要将其视为一个单独的类别,并为其创建一个虚拟变量列。
# 例如,如果Alley列中有缺失值,dummy_na=True会创建一个额外的列(如Alley_NA),
# 并将缺失值所在行的该列值设为1,其他行设为0。

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

import torch

x,y=torch.tensor(inputs.values),torch.tensor(outputs.values)
x,y

动手学深度学习-python基础知识介绍(数据处理基础流程)part2的更多相关文章

  1. 对比《动手学深度学习》 PDF代码+《神经网络与深度学习 》PDF

    随着AlphaGo与李世石大战的落幕,人工智能成为话题焦点.AlphaGo背后的工作原理"深度学习"也跳入大众的视野.什么是深度学习,什么是神经网络,为何一段程序在精密的围棋大赛中 ...

  2. 小白学习之pytorch框架(2)-动手学深度学习(begin-random.shuffle()、torch.index_select()、nn.Module、nn.Sequential())

    在这向大家推荐一本书-花书-动手学深度学习pytorch版,原书用的深度学习框架是MXNet,这个框架经过Gluon重新再封装,使用风格非常接近pytorch,但是由于pytorch越来越火,个人又比 ...

  3. 【动手学深度学习】Jupyter notebook中 import mxnet出错

    问题描述 打开d2l-zh目录,使用jupyter notebook打开文件运行,import mxnet 出现无法导入mxnet模块的问题, 但是命令行运行是可以导入mxnet模块的. 原因: 激活 ...

  4. 动手学深度学习9-多层感知机pytorch

    多层感知机 隐藏层 激活函数 小结 多层感知机 之前已经介绍过了线性回归和softmax回归在内的单层神经网络,然后深度学习主要学习多层模型,后续将以多层感知机(multilayer percetro ...

  5. 动手学深度学习1- pytorch初学

    pytorch 初学 Tensors 创建空的tensor 创建随机的一个随机数矩阵 创建0元素的矩阵 直接从已经数据创建tensor 创建新的矩阵 计算操作 加法操作 转化形状 tensor 与nu ...

  6. 《动手学深度学习》系列笔记—— 1.2 Softmax回归与分类模型

    目录 softmax的基本概念 交叉熵损失函数 模型训练和预测 获取Fashion-MNIST训练集和读取数据 get dataset softmax从零开始的实现 获取训练集数据和测试集数据 模型参 ...

  7. 动手学深度学习14- pytorch Dropout 实现与原理

    方法 从零开始实现 定义模型参数 网络 评估函数 优化方法 定义损失函数 数据提取与训练评估 pytorch简洁实现 小结 针对深度学习中的过拟合问题,通常使用丢弃法(dropout),丢弃法有很多的 ...

  8. 动手学深度学习6-认识Fashion_MNIST图像数据集

    获取数据集 读取小批量样本 小结 本节将使用torchvision包,它是服务于pytorch深度学习框架的,主要用来构建计算机视觉模型. torchvision主要由以下几个部分构成: torchv ...

  9. 【零基础学深度学习】动手学深度学习2.0--tensorboard可视化工具简单使用

    1 引言 老师让我将线性回归训练得出的loss值进行可视化,于是我使用了tensorboard将其应用到Pytorch中,用于Pytorch的可视化. 2 环境安装 本教程代码环境依赖: python ...

  10. mxnet 动手学深度学习

    http://zh.gluon.ai/chapter_crashcourse/introduction.html 强化学习(Reinforcement Learning) 如果你真的有兴趣用机器学习开 ...

随机推荐

  1. Fiddler对手机APP进行抓包

    1.下载安装Fiddler 2.打开Fiddler菜单项Tools-> Options->HTTPS 勾选CaptureHTTPS CONNECTs,点击Actions, 勾选Decryp ...

  2. openEuler欧拉配置Nacos集群

    ​一.安装Nacos systemctl stop firewalld ​systemctl disable firewalld mkdir -p /home/nacos tar xvf nacos- ...

  3. 聊一聊坑人的 C# MySql.Data SDK

    一:背景 1. 讲故事 为什么说这东西比较坑人呢?是因为最近一个月接到了两个dump,都反应程序卡死无响应,最后分析下来是因为线程饥饿导致,那什么原因导致的线程饥饿呢?进一步分析发现罪魁祸首是 MyS ...

  4. 拦截烂SQL,解读GaussDB(DWS)查询过滤器过滤规则原理

    本文分享自华为云社区<GaussDB(DWS)查询过滤器过滤规则原理与使用介绍>,作者: 清道夫. 1. 前言 适用版本:[9.1.0.100(及以上)] 查询过滤器在9.1.0.100之 ...

  5. 区分PO、VO、 BO、 DTO、 POJO

      分层领域模型规约: DO(Data Object):此结构与数据库表结构一一对应,通过DTO向上传输数据源对象. DTO(Data Transfer Object):数据传输对象,Service ...

  6. 在Ubuntu WSL2里配置GDAL Docker环境

    在Ubuntu WSL2里配置GDAL Docker环境 启用systemd # Ubuntu中执行 echo -e "[boot]\nsystemd=true" | sudo t ...

  7. 重温Go语法笔记 | 函数

    函数 返回值带有变量名 return时可以不写返回值,在返回值位置声明即可 func namedRetvalue() (a, b int) { a = 1 b = 2 return } 匿名函数 定义 ...

  8. 场景题:假设有40亿QQ号,但只有1G内存,如何实现去重?

    当数据量比较大时,使用常规的方式来判重就不行了.例如,使用 MySQL 数据库判重,或使用 List.contains() 或 Set.contains() 判重就不行了,因为数据量太大会导致内存放不 ...

  9. 【Java并发编程线程池】 ForkJoinPool 线程池是什么 怎么工作的 和传统的ThreadPoolExecutor比较

    Java 中的 ForkJoinPool 线程池是什么 怎么工作的 Java 中的 ForkJoinPool 线程池是什么 怎么工作的 相比较于传统的线程池,ForkJoinPool 线程池更适合处理 ...

  10. R语言系列—Rstudio简介和安装

    同学们,大家好,今天继续更新R语言系列.今天我们开始讲R语言的集成开发环境(IDE)-Rstudio,这里会对Rstudio及其安装进行介绍,感兴趣的同学可以重点关注一下. Rstudio简介 Rst ...