蜜源指数预测系统 数据处理_第1页
蜜源指数预测系统 数据处理_第2页
蜜源指数预测系统 数据处理_第3页
蜜源指数预测系统 数据处理_第4页
蜜源指数预测系统 数据处理_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

13蜜源地指数预测系统数据处理学习目标掌握数据归一化的思想;掌握数据装载器的含义132知识思政技能能基于Pytorch构建训练集能建立DataLoader数据加载器培养学生科学探索精神逻辑思维能力设计步骤蜜源地指数预测系统先读取csv格式的训练集,然后对数据进行归一化处理,第三步搭建深度神经网络MLP模型,并应用深度学习优化算法训练出最优模型,最后应用最优模型预测蜜源地指数。具体设计步骤如图所示。蜜源地指数预测系统核心工作是应用深度学习优化技术训练出多层感知机模型,得到模型最优参数。有了模型之后,输入蜜源地数据,预测出蜜源地指数。深度网络模型计算出来的结果能够为蜂农选择蜜源地提供数据决策支持。首先需要对原始数据进行预处理。具体数据处理步骤如下。

一、数据处理1、导入库打开Jupyternotebook,在新建的python文件中,先导入要使用的库和模块。代码如下:importnumpyasnp#导入整个numpy库,并将其命名为np,以后通过np来访问其中的函数、类等对象importpandasaspd#导入整个pandas库,并将其命名为pd,以后通过pd来访问其中的函数、类等对象importtorch#导入PyTorch深度学习框架,torch是pytorch的简写fromtorchimportnn#导入PyTorch的nn模块,模块中包括了pytorch中已经准备好的层,方便使用者调用构建的网络。fromtorch.utils.dataimportTensorDataset#导入torch.utils.data的TensorDataset模块,用于在Pytorch张量上创建数据集。fromtorch.utils.dataimportDataLoader#导入DataLoader模块,用来数据读取importtorch.utils.dataasData#导入Data模块,用于加载和预处理数据2、读取csv源数据,并提取特征和标签接着,使用Pandas库的read_csv函数读取训练数据miyuanzhishu-train.csv,代码和解析如下:train_data=pd.read_csv(‘miyuanzhishu-train.csv’)#用pandas的read_csv函数读取csv文件并赋值给变量train_datatrain_data#在程序中显示train_datatrain_X=train_data.iloc[:,4:-1]#从列号为4开始(从0开始编号列)到倒数第二列的所有行赋值给train_Xtrain_y=train_data.iloc[:,-1]#最后1列赋值给train_y得到的train_data和train_X为DataFrame类型,train_y

为Series类型2、读取源数据,并提取特征和标签train_Xtrain_y13列特征标签3、数据归一化预处理训练之前,需要对数据做归一化处理,消除量纲影响,使得数据之间的比较更加准确。归一化数据可以方便运算和处理,节省计算资源,提高计算效率。为了将所有特征放在一个共同的尺度上,通过将特征缩放到零均值和单位方差来标准化数据.公式为:其中,和分别表示均值和标准差

3数据归一化预处理

在Python中,对数据做归一化只要使用mean()函数和std()函数就可以完成。对13个特征向量train_X进行归一化,具体代码如下train_X=train_X.apply(lambdax:(x-x.mean())/(x.std()))apply函数的第一个参数是函数lambda,lamda是匿名函数,对参数x按上述公式进行归一化,x.mean()为x的均值,x.std()为x的方差。归一化完毕的特征具有零均值和单位方差,量纲一致。代码解析:代码结果:4构建训练数据集Pytorch深度学习框架要求训练数据为tensor格式。因此,归一化后,需要将数据转化为张量数据。在python中,使用torch.tensor函数可以实现数据张量化。具体代码如下:train_features=torch.tensor(train_X.valu_y.valueses,dtype=torch.float32)train_labels=torch.tensor(train.reshape(-1,1),dtype=torch.float32)train_X.values、train_y.values得到DataFrame(二维表)的numpy(数组)表示形式,DataFrame是有行标题和列标题的二维表数据结构。numpy是仅包含二维表数据的二维数组reshape(-1,1),把train_y.values变成1列,行数不指定,让系统自动计算。

dtype=torch.float32,表示train_features和train_labels为单精度32位浮点数。torch.tensor()是一个函数,用于根据给定的数据创建新的张量。它接受一个数据(如Python列表、NumPy数组等)作为输入,并返回一个新的张量对象。train_features和train_labels分别表示训练样本特征及其所对应的标签,数据结构为张量。代码解析:train_features=torch.tensor(train_X.valu_y.valueses,dtype=torch.float32)train_labels=torch.tensor(train.reshape(-1,1),dtype=torch.float32)进一步地,使用Data.TensorDataset()方法将特征和标签张量构建为一个训练数据集train_data,其代码为:Data.TensorDataset是PyTorch中的一个类,用于创建一个包含多个张量的数据集。这个类的主要作用是将输入的张量组合成一个数据集,使得在训练过程中可以方便地进行数据加载和迭代。TensorDataset接受一系列的张量作为输入参数,并且将这些张量作为数据集的元素。在实际应用中,通常将特征张量和标签张量作为输入,每个样本的特征和标签分别对应一个位置上的张量。本项目中,参数train_features表示样本特征张量,train_labels表示标签张量,这两个张量作为TensorDataset函数的参数,最终组合成一个数据集train_data。train_data=Data.TensorDataset(train_features,train_labels)代码解析:神经网络的训练过程通常需要大量的数据,而将所有数据一次性加载到内存中是不可行的。这时候就需要使用DataLoader将数据分成小批次进行加载。5、建立DataLoader数据加载器DataLoader是PyTorch提供的一个数据加载器,用于对数据进行批量加载和处理,将数据集变成可以进行遍历的对象,每次迭代从数据集中返回一组数据。DataLoader可以自动完成数据的批量加载、随机洗牌(shuffle)、并发预取等操作,从而提高模型训练的效率。DataLoader的常用参数有:dataset:指定数据集batch_size:每个批次的样本数量。shuffle:是否对数据进行洗牌操作。num_workers:加载数据时的并发线程或进程数。5、建立DataLoader数据加载器本项目,从已预处理后的train_data数据集中读取数据,批大小为128,每个训练周期开始时,打乱训练数据集中的样本随机顺序,只用一个worker进程来加载batch数据。数据装载器代码如下:train_loader=Data.DataLoader(dataset=train_data,batch_size=128,shuffle=True,num_workers=1,)这段代码的功能是将train_data数据集封装成一个128个样本大小的、对样本随

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论