基于pytorch写一个多对多预测代码,数据集名称为data.csv,前四列为特征,其余列为标签,前800行为训练集其余为测试集,将其中一组预测值与真实值输出到excel工作表中
时间: 2023-02-16 14:03:38 浏览: 121
以下是基于 PyTorch 实现多对多预测的示例代码:
```
import torch
import pandas as pd
from torch.utils.data import Dataset, DataLoader
class Data(Dataset):
def __init__(self, csv_file):
self.data = pd.read_csv(csv_file)
self.x = self.data.iloc[:, :4]
self.y = self.data.iloc[:, 4:]
def __len__(self):
return len(self.data)
def __getitem__(self, idx):
return self.x.iloc[idx], self.y.iloc[idx]
# 初始化数据集
data = Data("data.csv")
# 将数据集分为训练集和测试集
train_data = data[:800]
test_data = data[800:]
# 初始化模型
model = torch.nn.Linear(4, len(data.y.columns))
# 定义损失函数和优化器
criterion = torch.nn.MSELoss()
optimizer = torch.optim.SGD(model.parameters(), lr=0.001)
# 训练模型
for epoch in range(100):
for x, y in train_data:
y_pred = model(x)
loss = criterion(y_pred, y)
optimizer.zero_grad()
loss.backward()
optimizer.step()
# 测试模型
test_x, test_y = test_data[0]
test_y_pred = model(test_x)
# 将预测值和真实值输出到 Excel 工作表中
df = pd.DataFrame({"pred": test_y_pred.detach().numpy(), "real": test_y.to_numpy()})
df.to_excel("output.xlsx", sheet_name="Sheet1")
```
请注意,这只是一个示例代码,您可能需要根据实际情况进行修改。
阅读全文