深度学习中的数据处理

本文详述深度学习中数据处理的重要步骤,包括数据载入、数据分割和数据归一化。以波士顿房价预测为例,介绍了numpy库的fromfile、split、loadtxt等函数在数据处理中的应用,以及sklearn模块的train_test_split函数用于训练集和测试集的划分。数据归一化通过减去均值并除以最大最小差值实现,确保模型训练效率。
摘要由CSDN通过智能技术生成

现在将一些有关数据处理的库函数以及用法总结如下,希望能对以后有所帮助。

作为深度学习的第一步,一定是要将各种各样的数据从本地或者云端导入到我们的模型中,所以数据的处理一定是很重要的一部分。这里首先将numpy库中的一些有关函数总结如下,之后会补充基于paddlepaddle框架下的数据处理知识。

一、理论部分

简单来说数据的预处理需要经过以下几个步骤,数据载入,数据分割和数据归一化,本博文会以“波士顿房价预测”为例,梳理一遍数据处理的整体思路,并会将所用到的函数在后补充相关用法。

首先我们用记事本打开这个数据文件,看看这个数据文件里面的内容到底是什么。打开之后我们会发现它是由十四列数据组成的。在这里插入图片描述这十四列分别是评价波士顿房价的估计参数(具体可以从网上找到这里不再赘述),因此我们首先需要把本地的文件导入到我们的编辑器中,这时候我们就需要使用一些函数来帮助我们完成操作。

1.数据载入
这次我们选择fromfile()对数据进行读取,读取之后我们对数据打印看看是什么样子的。

import numpy as np
import json
# 读入训练数据
datafile = r'C:\Users\DL\housing.data'
data = np.fromfile(datafile, sep=' ')
print(data)
print(type(data))
print(np.shape(data))

np.savetxt(r'C:\Users\DL\fromfile_load.txt',data)

打印读取的结果如下,
在这里插入图片描述发现他是一个有7084行的一个数组,把数据保存到记事本里可以看到他的排列如下图所示。
在这里插入图片描述 通过fromfile把我们的数据成功进行载入,经过这个函数我们发现他把所有的数据都装载进了一列,组成了一个一维数组,显然这样的格式显然是不利于我们进行进一步操作的,于是我们应该对数据进行整形,方便我们的进一步处理。

数据原本是由13个参数和一个结果构成,那我们需要把这7084个行,按照它本来的顺序进行转化,将其整形为[N,14]的二维数组。这样我们就可以根据不同的参数获取相应的结果。同时我们将每一组的参数名称作为index对数据进行划分。

feature_names = [ 'CRIM', 'ZN', 'INDUS', 'CHAS', 'NOX', 'RM', 'AGE','DIS',
                 'RAD', 'TAX', 'PTRATIO', 'B', 'LSTAT', 'MEDV' ]
feature_num = len(feature_names)
data = data.reshape([data.shape[0] // feature_num, feature_num])
print(data)
np.savetxt(r'C:\Users\小郭哥\DL\date_reshape.txt',data)

可以得到如下结果,发现已经按照我们的需求把不同参数所对应的数据进行分开。在这里插入图片描述这时候我们就完成了数据预处理的第一步,对数据的载入。
2、数据分割
为了对我们训练出来的参数进行验证,因此我们需要把数据集划分成训练集和测试集,通过训练集对参数的大小进行训练,通过测试集对参数的准确性进行确认。在这里我们通过排列顺序,将数据集按照百分之八十分给训练集,百分之二十给测试集的方式进行划分。

x=data
print(x.shape[0])
#一共有506份数据,提取百分之八十作为训练集--404
ratio = 0.8
offset = int(data.shape[0]*ratio)
training_data = data[:offset]
test_data = data[offset:]
print(training_data.shape)

在这里插入图片描述3、数据归一化
为了使模型训练更高效,我们会对数据进行归一化处理,使得每个特征的取值缩放到[-0.5,0.5],我们采用如下方式进行归一化:用每一个数据减去数据集的均值再除数据中最大值和最小值的差。因为每一个数据都处于相同的区间中,所以他们的权重刚好代表了其在最终预测结果中所占的比重。

max = training_data.max(axis=0)
min = training_data.min(axis=0)
avgs = t
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值