У меня есть почасовые данные на срок до 1 года.Я хочу сделать прогноз на следующий час на основе данных предыдущих часов.Для этого я использую многослойный персептрон, но он продолжает давать неверный результат прогноза
Для простоты, скажем, я хочу прогнозировать следующий 1 час, используя данные за предыдущие 3 часа.Это пример моих данных (T-2, T-1, T в качестве входа и T + 1 в качестве цели):
T-2 T-1 T0 T+1
10 20 30 40
20 30 40 50
30 40 50 60
40 50 60 70
, если я введу (20, 30, 40) в свою модель,это дает мне 40 вместо 50, это также то же самое для другого набора данных (30, 40, 50 производит 50 вместо 60 и скоро).Я пробовал разные временные рамки, разное количество скрытых слоев, нейронов, эпох, размеров партий, а также разные функции активации, но результат всегда одинаков.Полученный результат всегда ближе к T0, чем (T + 1)
n_input = Xtrain.shape[1] * Xtrain.shape[2]
Xtrain = Xtrain.reshape((Xtrain.shape[0], n_input))
Xtest = Xtest.reshape((Xtest.shape[0], n_input))
# define model
model72 = Sequential()
model72.add(Dense(20, activation='relu', input_dim=n_input))
model72.add(Dense(1))
# Compile model
model72.compile(loss = 'mean_squared_error', metrics = ['mse', 'acc'], optimizer='adam')
# fit model
history72 = model72.fit(Xtrain, ytrain, validation_split=0.33, epochs=200, batch_size=1000, verbose=0)
Я что-то пропустил?
Это мои данные на самом деле выглядит так:
[0.75400747 7.2062848 2.0027392 ] 4.194725333
[0.65565867 8.0780128 1.9312128 ] 4.4242058669999995
[2.01317013 7.2152256 3.22911893] 3.029441067
[1.989328 7.554976 4.43314667] 3.106928
[2.40656533 6.98574507 5.20652587] 3.2097472000000002
[2.65690773 7.41490347 6.05143147] 2.023601067
[1.5825216 7.6935584 6.9648832] 1.56464
[2.2754336 8.404352 6.56552747] 2.1621834669999997
[5.44792747 9.24180693 8.28961173] 3.8981888
[7.70547947 9.71566933 9.72908053] 5.889006932999999
[9.61285013 9.01977707 9.57857707] 5.702740267
[10.7423712 10.2550976 9.25968853] 7.347847467
[10.82581867 9.29545173 9.28651093] 7.9811541329999995
[10.89287467 9.2492576 8.9720928 ] 7.194363732999999
[10.6127296 9.34462613 9.46085653] 8.0154272
[11.17749013 9.05852053 9.4191328 ] 7.262909867
[10.74088107 10.72896 9.19859307] 7.2644
[10.08373227 10.9435392 8.9542112 ] 6.7070901329999995