首页 > 其他分享 >动手学习Deep learning-数据预处理

动手学习Deep learning-数据预处理

时间:2024-03-16 18:00:12浏览次数:25  
标签:inputs os data NaN Deep learning iloc True 预处理

数据预处理:

import os

os.makedirs(os.path.join('..','data'),exist_ok=True)     #自动读取该代码文件的文件位置,并返回上级目录创建data文件
data_file = os.path.join('..','data','house_tiny.csv')   #创建CSV文件
with open(data_file, 'w') as f:     #打开data_file,并指定以写入模式('w')打开文件。在这个文件对象上可以使用.write()方法来写入数据
    f.write('NumRooms,Alley,Price\n')    #每一列的名字
    f.write('NA,Pave,127500\n')          #NA表示未知
    f.write('2,NA,106000\n')
    f.write('4,NA,178100\n')
    f.write('NA,NA,140000\n')

1. `os.makedirs(os.path.join('..','data'), exist_ok=True)`:

   - `os.makedirs()`是一个函数,用来创建文件夹。

   - 这个函数中的`'..'`意味着上一级目录,`'data'`是文件夹的名字。

   - `exist_ok=True`的意思是如果文件夹已经存在,就不会报错。

2. `data_file = os.path.join('..','data','house_tiny.csv')`:

   - `os.path.join()`也是一个函数,用来拼接路径。

   - 这个函数中的`'..'`意味着上一级目录,`'data'`是文件夹的名字,`'house_tiny.csv'`是文件的名字。

   - 这一行代码的作用是将上一级目录中的`data`文件夹下的`house_tiny.csv`文件的路径赋值给`data_file`这个变量。

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

import pandas as pd

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

    NumRooms Alley Price

0             NaN Pave 127500

1               2.0 NaN 106000

2               4.0 NaN 178100

3             NaN NaN 140000

 

读取csv文件最常用的库是panda库,用该库的read_csv函数读取刚刚写的data_file这个csv文件,并将其赋值给data这个变量。

为了处理缺失数据,典型方法包括:插值和删除,这里我们考虑插值

如果对于删除来说的话就是缺一个数据就把这个样本这一行丢掉,但是会造成数据量的减少,所以不考虑。

inputs, outputs = data.iloc[:, 0:2], data.iloc[:, 2]
inputs = inputs.fillna(inputs.iloc[1:].mean())   #fillna 是 Python 语言中的一个函数,通常用于处理缺失值(NaN)。它可以用于填充缺失值,以使数据集中的数据更加完整和有价值。
print(inputs)

   NumRooms Alley

0               3.0 Pave

1               2.0 NaN

2               4.0 NaN

3               3.0 NaN

 对于填充缺失值,您可以使用fillna()函数来填充inputs中除了第一行以外的缺失值。

- `data.iloc[:,0:2]`是选择了`data`这个数据集的所有行,以及第0列到第1列(不包括第2列)的数据。这表示选择了数据集中的前两列作为输入。

- `data.iloc[:,2]`则选择了`data`这个数据集的所有行,以及第2列的数据。这表示选择了数据集中的第2列作为输出。

`iloc`是Pandas库中的一个方法,用于通过行索引和列索引来选择数据。它是基于整数位置进行索引的。

`iloc`的语法是`data.iloc[行索引, 列索引]`。

- 行索引可以是单个整数、整数列表、整数切片或布尔值列表。例如,`[0]`表示选择第一行,`[1:3]`表示选择第二行到第三行,`[True, False, True]`表示根据布尔条件选择行。

- 列索引可以是单个整数、整数列表、整数切片或布尔值列表。例如,`[0]`表示选择第一列,`[1:3]`表示选择第二列到第三列,`[True, False]`表示根据布尔条件选择列。

通过使用`iloc`方法,可以根据整数位置来对数据集进行切片和选择操作,这对于数据预处理、特征选择等任务非常有用。

 

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

    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`进行独热编码,并将结果显示为0和1的形式,并且将数据类型设置为整数(int)。

`pd.get_dummies()`函数用于进行独热编码,将分类变量转换为二进制的特征向量表示。通过设置`dummy_na=True`,函数会为缺失值创建一个额外的列,并将缺失值表示为1,非缺失值表示为0。同时,通过设置`dtype=int`,将结果的数据类型设置为整数。

因此,`print(inputs)`将显示经过独热编码后的数据,其中缺失值表示为1,非缺失值表示为0,并且数据类型为整数。

如果没有dtype = int,那么编译出来的1就显示True,0就显示False。

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

import torch

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

 

标签:inputs,os,data,NaN,Deep,learning,iloc,True,预处理
From: https://blog.csdn.net/mywhyyds/article/details/136766496

相关文章

  • 一个现成的用python写的项目, 有GUI,https://github.com/mustafamerttunali/deep-learni
    安装该项目ENV:Win11Anaconda 1.安装Python3.7, 在Anaconda新建一个python3.7环境2.安装VC++buildtool14.0 以上版本,我从下面这个link下载的最新版是17.6.4https://visualstudio.microsoft.com/visual-cpp-build-tools/否则会遇到 3.修改一下requir......
  • 政安晨:【AI认知速成】(一)—— 初步理解Q-learning
    咱们这篇文章将要介绍的AI模型,遍及机器人、自动驾驶汽车、游戏中的NPC等等。Q-Learning是一种强化学习算法,用于解决动态环境下的决策问题。在Q-Learning中,有一个智能体(agent)和一个环境(environment)。智能体通过与环境的交互来学习最优策略,以最大化累计奖励。Q-Learning算法的......
  • 数据预处理|数据清洗|使用Pandas进行异常值清洗
    数据预处理|数据清洗|使用Pandas进行异常值清洗使用Pandas进行异常值清洗1.异常值检测1.1简单统计分析1.2散点图方法1.33σ原则1.4箱线图2.异常值处理2.1直接删除2.2视为缺失值2.3平均值修正2.4盖帽法2.5分箱平滑法2.6回归插补2.7多重插补2.8不处理......
  • Federated Learning with Differential Privacy:Algorithms and Performance Analysis
    2024/2/11大四做毕设的时候第一次读这篇论文,当时只读了前一部分,后面关于收敛界推导证明的部分没有看,现在重新完整阅读一下这篇文章。本文贡献提出了一种基于差分隐私(DP)概念的新框架,其中在聚合之前将人工噪声添加到客户端的参数中,即模型聚合前加噪FL(NbAFL)我们提出了Nb......
  • deepseek-coder模型量化
    简介DeepSeek-Coder在多种编程语言和各种基准测试中取得了开源代码模型中最先进的性能。为尝试在开发板进行部署,首先利用llama.cpp对其进行量化。llama.cpp安装gitclone之后进入文件夹make即可,再将依赖补全pipinstall-rrequirements.txt量化可以将模型文件放到lla......
  • 【Coursera GenAI with LLM】 Week 3 Reinforcement Learning from Human Feedback Cl
    Helpful?Honest?Harmless?MakesureAIresponseinthose3ways.Ifnot,weneedRLHFisreducethetoxicityoftheLLM.Reinforcementlearning:isatypeofmachinelearninginwhichanagentlearnstomakedecisionsrelatedtoaspecificgoalbytakin......
  • 容器集群实现多机多卡分布式微调大模型chatglm2-6b(deepseed + LLaMA + NCCL)
    环境信息2台物理机(187.135,187.136),各两张p4显卡,安装好docker=20.10.0,安装好nvidia驱动(driverversion=470.223.02,cudaversion=11.4)构造容器集群(dockerswarm187.136节点作为manager节点,187.135节点作为worker节点)[root@host-136~]#dockerswarminit--advertise-addr......
  • 【图像超分】论文复现:新手入门!Pytorch实现SRCNN,数据预处理、模型训练、测试、评估全流
    文章目录前言1.准备数据集和数据预处理1.1数据集选择1.2数据预处理1.3评估指标PSNR和SSIM1.3.1PSNR1.3.2SSIM2.定义网络结构3.设置参数并训练模型3.1参数设置3.2模型训练4.测试训练好的模型5.用训练好的SRCNN模型超分自己的图像数据6.其他补充6.1特征图......
  • 使用 Keras 和 ArcGIS Pro 通过 Mask-RCNN/DeepLabV3+ 进行 EagleView 高分辨率图像语
            机器学习中的计算机视觉为GIS提供了巨大的机会。其任务包括获取、处理、分析和理解数字图像的方法,以及从现实世界中提取高维数据以产生数字或符号信息,例如以决策的形式。在过去的几年中,计算机视觉越来越多地从传统的统计方法转向最先进的深度学习神经网络技......
  • 跑deeplsd过程记录
    gitclone--recurse-submoduleshttps://github.com/cvg/DeepLSD.git----------------------直接用----------------------------cdDeepLSDbashquickstart_install.shmkdirweightswgethttps://www.polybox.ethz.ch/index.php/s/FQWGkH57UNTqlJZ/download-Oweights/deepls......