写一个基于pytorch的回归预测,特征和标签都存在data.csv中,前四列为特征,其余为标签,显示真实值与预测值对比图像
时间: 2023-02-11 15:19:32 浏览: 108
基于pytorch搭建多特征CNN-LSTM时间序列预测源码+全部数据(高分期末大作业).zip
5星 · 资源好评率100%
基于 PyTorch 的回归预测示例代码如下:
```
import torch
import torch.nn as nn
import pandas as pd
import matplotlib.pyplot as plt
# 读取数据
data = pd.read_csv("data.csv")
# 提取特征和标签
X = data.iloc[:, :4]
y = data.iloc[:, 4:]
# 将数据转换为 PyTorch 张量
X = torch.tensor(X.values, dtype=torch.float32)
y = torch.tensor(y.values, dtype=torch.float32)
# 定义网络
class Net(nn.Module):
def __init__(self):
super(Net, self).__init__()
self.fc1 = nn.Linear(4, 10)
self.fc2 = nn.Linear(10, 1)
def forward(self, x):
x = torch.relu(self.fc1(x))
x = self.fc2(x)
return x
net = Net()
# 定义损失函数和优化器
criterion = nn.MSELoss()
optimizer = torch.optim.Adam(net.parameters(), lr=0.01)
# 训练模型
for epoch in range(1000):
# 前向传播
pred = net(X)
loss = criterion(pred, y)
# 反向传播
optimizer.zero_grad()
loss.backward()
optimizer.step()
if epoch % 100 == 0:
print(f'Epoch {epoch + 1}, Loss: {loss.item():.4f}')
# 预测
with torch.no_grad():
pred = net(X)
# 画图
plt.plot(y.numpy(), label='True')
plt.plot(pred.numpy(), label='Pred')
plt.legend()
plt.show()
```
说明:
1.代码中首先通过pandas读取csv格式数据,提取前四列作为特征,其余为标签。
2.然后通过 Pytorch 将数据转换为张量
3. 然后定义一个简单的线性网络来作为回归模型
4. 之后,定义
阅读全文