У меня есть отформатированный набор данных, который выглядит как матрица[NxM ] где N = 40 общее количество циклов (временных меток) и M = 1440 пикселей. Для каждого цикла у меня есть значения 1440 пикселей, соответствующие 1440 пикселям. Я использовал разные модели для прогнозирования значений пикселей будущих циклов на основе последних 10 циклов.
Проблема в том, что я не смог добиться правильного непрерывного графика после обучения NN, скорее всего, из-за плохой техники разделения данных, которую я использовал с помощью train_test_split
, но никогда не пробовал с помощью TimeSeriesSplit
следующим образом:
trainX, testX, trainY, testY = train_test_split(trainX,trainY, test_size=0.2 , shuffle=False)
1-я проблема заключается в том, что я использовал shuffle=False
и ожидаю, что 0,2 от конца данных будут рассматриваться как тестовые данные, и я могу правильно их построить, но не смог, потому что: 1) к сожалению, я пропустил 10 циклов из-за функции истории def create_dataset()
, которая проверяет прошлые 10 циклов, чтобы спрогнозировать будущий. как вы можете видеть здесь:
def create_dataset(dataset,data_train,look_back=1):
dataX,dataY = [],[]
print("Len:",len(dataset)-look_back-1)
for i in range(len(dataset)-look_back-1):
a = dataset[i:(i+look_back), :]
dataX.append(a)
dataY.append(data_train[i + look_back, :])
return np.array(dataX), np.array(dataY)
look_back = 10
trainX,trainY = create_dataset(data_train,Y_train, look_back=look_back)
2) Я также не могу получить доступ к количеству циклов, которые считаются тестовыми данными, поэтому, когда я рисую, он начинается с 0! вместо продолжения с конца цикла данных поезда!
результат моего ожидания после правильного фрагмента данных - это то, что заставило меня поймать следующий непрерывный график, который я сделал вручную с помощью краски в Windows 7:
Мы будем очень признательны за любые советы.