当前位置:   article > 正文

使用自己的csv文件数据进行神经网络学习时的数据处理_使用csv格式训练

使用csv格式训练

有时在进行进行神经网络训练时,需要自己导入本地的csv数据,此篇文章介绍如何导入数据,读取数据,设置训练集和测试集的大小,以及获取样本的features和tags
首先使用panda导入数据。

import pandas as pd
dataset = pd.read_csv('dataset.csv')
  • 1
  • 2

一般的csv数据第一行是表头
在这里插入图片描述
使用

dataset = dataset.values
  • 1

就可以将数据转化成一个去掉表头的标准numpy二维数组。
然后就可以设置训练集和测试集的长度

train_size = int(len(dataset) * 0.8)  # 这里按照8:2进行训练和测试
test_size = len(dataset) - train_size
  • 1
  • 2

由于源数据可能标签集中,如果顺序提取训练集或者测试集的话可能导致比如训练集标签大多数是1,测试集标签基本都是0的情况,所以进行分割数据时可以打乱数据后再按比例分割
可以使用torch中提供的data方法

import torch.utils.data as Data
train_dataset, test_dataset = Data.random_split(dataset, [train_size, test_size])
  • 1
  • 2

训练集和测试集分割完成,注意此时的数据类型还是numpy类型,可以使用b = torch.from_numpy(a)
直接将numpy数据转化为torch数据类型。也可以使用DataLoader方法进行批量读取数据

from torch.utils.data import DataLoader
train_loader = DataLoader(train_dataset, batch_size=64, shuffle=False)
test_loader = DataLoader(test_dataset, batch_size=64, shuffle=False)
  • 1
  • 2
  • 3

此处我设置的每次读取64个数据,即batch_size=64,因为之前已经使用random_split打乱数据了,所以此处的shuffle就设置为false,即不随机读取。

好了,截至目前已经成功搞好训练集train_loader和测试集test_loader。在将这些数据带入到我们设置的网络中时,可能需要分割样本的特征features以及样本的标签tag,一般标签是在一行数据的最后一个位置。
遍历数据集时,

for data in train_loader:
    featurs = data[:, :-1]
    tags = data[:, -1:]
	
  • 1
  • 2
  • 3
  • 4

一个维度一个逗号,如果使用该维度的全部,比如在此处是索取所有的行,就加一个冒号即可。
此处提取第一列到最后倒数第二列,此处-1即是最后一列, :-1不包含最后一列,就像2:6表示[2, 6)
如果提取最后一列,就可以使用上面提取tags的用法,这样就不用在源数据上数有多少列,也不容易出错。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/129792
推荐阅读
相关标签
  

闽ICP备14008679号