Я играю с набором данных, которые являются временными рядами, и с помощью изменения формы я извлекаю их в RNN.
Набор данных содержит 40 временных шагов набор данных Я надеюсь каждый раз1 строка, содержащая 1440 столбцов, извлекается в RNN и проходит обучение, а в конце - 40 раз (1, 1440) - подача и обучение в RNN.
X_train size: (40, 1, 1440)
X_test size: (40, 1, 1440)
Проблема - хочу разделить набор данныхв: набор данных , набор проверок и набор тестов , чтобы я мог прогнозировать после timestep = t и выводить график.
Я уже прочитал @YSelf answer и причину, по которой полезна, но, к сожалению, я еще не настроил ее успешно из-за структуры данных.Я хочу предоставить условие, которое я могу изменить в сценариях реализации, чтобы, скажем, мне было интересно прогнозировать временные шаги после 35-й строки или временной шаг до конца.Как я могу выполнить это и как я могу продемонстрировать его сюжет?
мой код следующий:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error
from keras.layers import Dense , Activation , BatchNormalization
from keras.layers import LSTM,SimpleRNN
from keras.models import Sequential
from keras.optimizers import Adam, RMSprop
data_train = pd.read_csv("D:\Train.csv", header=None)
#select interested columns to predict 980 out of 1440 for prediction
j=0
index=[]
for i in range(1439):
if j==2:
j=0
continue
else:
index.append(i)
j+=1
Y_train = data_train[index]
Y_test = data_test[index]
data_train = data_train.values
data_test = data_test.values
X_train = data_train .reshape((data_train.shape[0], 1,data_train.shape[1]))
X_test = data_test .reshape((data_test.shape[0] , 1 ,data_test.shape[1]))
# create and fit the SimpleRNN model
model_RNN = Sequential()
model_RNN.add(SimpleRNN(units=1440, input_shape=(X_train.shape[1], X_train.shape[2]))) #in real data units=1440
model_RNN.add(Dense(960)) # in real data Dense(960)
model_RNN.add(BatchNormalization())
model_RNN.add(Activation('tanh'))
model_RNN.compile(loss='mean_squared_error', optimizer='adam')
hist_RNN=model_RNN.fit(X_train[:30, :], Y_train[30:, :], epochs =50, batch_size =20,validation_data=(X_train[:30, :], Y_train[30:, :]),verbose=1)
Я был бы очень признателен, если бы кто-то мог объяснить ответ на вопросы.Заранее спасибо.