基于BP神经网络的回归实现

本文介绍了一种基于BP神经网络的回归应用,以波士顿房价预测问题为例。首先,数据集包括13个影响因素,共506个样本。接着,数据被划分为训练集、验证集和测试集,并进行标准化处理。然后,模型初始化,定义了优化器和损失函数。最后,进行了迭代训练,并提供了完整的代码实现。
摘要由CSDN通过智能技术生成

1.数据集

用于回归预测的数据集为波士顿房价预测问题的数据集,它是回归问题的一个经典数据集。数据集中,有13个影响房价的因素,因此每个样本维度为13。数据集一共包含506个样本,因此数据集的数据样本维度为(506,13),数据集的目标维度为(506,1)。
调用sklearn库可以方便的下载该数据集。

from sklearn.datasets import load_boston
dataset=load_boston()
x_data=dataset.data
y_data=dataset.target
n_data=dataset.feature_names

其中,x_data维度为(506,13),y_data维度为(506,1),n_data维度为(1,13)。

2.数据预处理

将506个样本数据分成训练集、验证集和测试集三部分。
训练前对数据进行预处理,先将数据进行标准化,再将数据由原始的numpy格式转化为tensor.cuda格式,以便在GPU上训练和测试。

def normalize(x_data, mean, deviation):   
    std = (x_data - mean) / deviation
    return std
#1.Load the train datasets and test datasets
dataset=load_boston()
mean = dataset.data.mean()         
deviation = dataset.data.std() 
train_target=dataset.target[:416]
train_target=torch.from_numpy(train_target)
train_data=dataset.data[:416]
train_data=normalize(train_data, mean, deviation)
train_data=torch.from_numpy(train_data)
train_dataset = TensorDataset(train_data, train_target)
train_loader = DataLoader(train_dataset,batch_size=32,shuffle=True,num_workers=4)

test_target=dataset.target[416:480]
test_target = torch.from_numpy(test_target)
test_data=dataset.data[416:480]
test_data=normalize(test_data, mean, deviation)
test_data=torch.from_numpy(test_data)
test_dataset = TensorDataset(test_data, test_target)
test_loader = DataLoader(test_dataset,batch_size=32,shuffle=False,num_workers=0)

3.模型初始化

#2.Initialize model
cuda_avail = torch.cuda.is_available()
model = SimpleNet()
if cuda_avail:
    model.cuda()

4.定义优化器和损失函数

#3. Define the optimizer and loss function 
optimizer = Adam(model.parameters(
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值
>