import torch
import as nn
import numpy as np
import pandas as pd
import as optim
from import StandardScaler
from import mean_absolute_error
import matplotlib
device = ('cuda' if .is_available() else 'cpu')
['-serif'] = ['SimHei']
['axes.unicode_minus'] = False
# 加载数据
data = pd.read_csv('数据集.csv').values
# 划分训练集和测试集
(0)
temp = (len(data))
X_train = data[temp[:80], :7]
y_train = data[temp[:80], 7]
X_test = data[temp[80:], :7]
y_test = data[temp[80:], 7]
# 数据标准化
scaler = StandardScaler()
X_train = scaler.fit_transform(X_train)
X_test = (X_test)
# 转换为PyTorch张量
X_train = (X_train, dtype=torch.float32).to(device)
y_train = (y_train, dtype=torch.float32).to(device).unsqueeze(1) # 回归任务,目标应为连续值
X_test = (X_test, dtype=torch.float32).to(device)
y_test = (y_test, dtype=torch.float32).to(device).unsqueeze(1) # 回归任务,目标应为连续值
class BPNeuralNetwork():
def __init__(self, input_size, hidden_size1,hidden_size2,output_size,dropout_prob=0.0):
super(BPNeuralNetwork, self).__init__()
self.fc1 = (input_size, hidden_size1)
= ()
self.fc2 = (hidden_size1, hidden_size2)
= ()
self.fc3 = (hidden_size2, output_size)
= (dropout_prob) # 添加 Dropout 层
def forward(self, x):
out = self.fc1(x)
out = (out)
out = self.fc2(out)
out = (out)
out = (out) # 在激活函数之后应用 Dropout
out = self.fc3(out)
return out
# 定义网络
input_size = X_train.shape[1]
hidden_size1 = 15
hidden_size2 = 13
output_size = 1 # 回归任务,输出一个连续值
model = BPNeuralNetwork(input_size, hidden_size1, hidden_size2, output_size).to(device)
# 使用 MSELoss 进行回归
criterion = ()
相关文章
- 基于RBMO-BP神经网络回归预测的Python代码实现
- 【单层神经网络】基于MXNet的线性回归实现(底层实现)
- 基于YOLO11/v10/v8/v5深度学习的水面垃圾智能检测识别系统设计与实现【python源码+Pyqt5界面+数据集+训练代码】
- 基于YOLO11/v10/v8/v5深度学习的维修工具检测识别系统设计与实现【python源码+Pyqt5界面+数据集+训练代码】
- Python基于TensorFlow实现双向长短时记忆循环神经网络加注意力机制回归模型(BiLSTM-Attention回归算法)项目实战-1.项目背景
- 基于对抗神经网络GAN+CNN的医学疾病预测实战-完整代码数据
- 基于麻雀优化的BP神经网络(预测应用) - 附代码
- 回归预测|基于哈里斯鹰优化最小二乘支持向量机的数据回归预测Matlab程序HHO-LSSVM 多特征输入单输出含基础程序-三、核心代码
- 基于光伏电站真实数据集的深度学习预测模型(Python代码,深度学习五个模型)
- 基于RNN(循环神经网络)的北京雾霾天气指数的预测(keras实现RNN,LSTM神经网络算法)