建立一个预测并列时间序列的神经网络模型
问题描述:现在系统有10个输入5个输出,输入参数相互独立,对5个输出有协同影响。10个输入能组合出n种工况。
解决问题:只有其中一部分工况的数据(所有工况均可实验,若有必需的数据可以继续实验获得),该如何训练一个模型,可以对所有组合出的工况都进行预测?
遇到困难:目前只会使用一组工况的数据训练模型,然后预测这一种工况。不能实现一个模型对系统全部工况进行预测。
建立一个预测并列时间序列的神经网络模型
问题描述:现在系统有10个输入5个输出,输入参数相互独立,对5个输出有协同影响。10个输入能组合出n种工况。
解决问题:只有其中一部分工况的数据(所有工况均可实验,若有必需的数据可以继续实验获得),该如何训练一个模型,可以对所有组合出的工况都进行预测?
遇到困难:目前只会使用一组工况的数据训练模型,然后预测这一种工况。不能实现一个模型对系统全部工况进行预测。
可以借鉴下
import pandas as pd
import torch
import torch.nn as nn
from torch.utils.data import Dataset, DataLoader
import torch.optim as optim
import pandas as pd
import numpy as np
import lightgbm as lgb
from sklearn.metrics import mean_squared_error
df = pd.read_csv('Raotbl6.csv')
df['date'] = pd.to_datetime(df['date'])
df.index = df['date']
df.drop('date', axis=1, inplace=True)
# make future targets
for i in range(12):
df['rgnp_{}'.format(i)] = df['rgnp'].shift(-i-1)
df.dropna(inplace=True)
targets = [item for item in df.columns if 'rgnp_' in item]
X_train = df.drop(targets, axis=1)[: int(len(df) * 0.8)]
y_train = df[targets][: int(len(df) * 0.8)]
X_test = df.drop(targets, axis=1)[int(len(df) * 0.8) :]
y_test = df[targets][int(len(df) * 0.8) :]