pytorch作业二

import pandas as pd

'''导入数据'''

data = pd.read_excel('波士顿房价预测.xlsx',header=None,index_col=None) # 一共506组数据,每组数据13个特征,13个特征对应一个输出

x = data.loc[:, 0:12] # 将特征数据存储在x中,表格前13列为特征,

y = data.loc[:, 13:13] # 将标签数据存储在y中,表格最后一列为标签

'''对每列(特征)归一化'''

from sklearn.preprocessing import MinMaxScaler # 导入归一化模块

# feature_range控制压缩数据范围,默认[0,1]

scaler = MinMaxScaler(feature_range=[0,1]) # 实例化,调整0,1的数值可以改变归一化范围

X = scaler.fit_transform(x) # 将标签归一化到0,1之间

Y = scaler.fit_transform(y) # 将特征归于化到0,1之间

# x = scaler.inverse_transform(X) # 将数据恢复至归一化之前

'''对每列数据执行标准化'''

from sklearn.preprocessing import StandardScaler

scaler = StandardScaler() # 实例化

X = scaler.fit_transform(x) # 标准化特征

Y = scaler.fit_transform(y) # 标准化标签

# x = scaler.inverse_transform(X) # 这行代码可以将数据恢复至标准化之前

import torch

X = torch.tensor(X, dtype=torch.float32) # 将数据集转换成torch能识别的格式

Y = torch.tensor(Y, dtype=torch.float32)

torch_dataset = torch.utils.data.TensorDataset(X, Y) # 组成torch专门的数据库

batch_size = 6 # 设置批次大小

# 划分训练集测试集与验证集

torch.manual_seed(seed=2021) # 设置随机种子分关键,不然每次划分的数据集都不一样,不利于结果复现

train_validaion, test = torch.utils.data.random_split(

torch_dataset,

[450, 56],

) # 先将数据集拆分为训练集+验证集(共450组),测试集(56组)

train, validation = torch.utils.data.random_split(

train_validaion, [400, 50]) # 再将训练集+验证集拆分为训练集400,测试集50

# 再将训练集划分批次,每batch_size个数据一批(测试集与验证集不划分批次)

train_data = torch.utils.data.DataLoader(train,

batch_size=batch_size,

shuffle=True)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值