I am attempting to forecast a time series using tensorflow with the following code:
X = mytimeseries scaler = MinMaxScaler() scaled = scaler.fit_transform(X) length = len(X)-1 generator = TimeseriesGenerator(scaled,scaled, length=length,batch_size=1) model = Sequential() model.add(LSTM(units=100,activation='relu',input_shape=(length,n_features))) model.add(Dense(units=100)) model.add(Dense(units=1)) model.fit(generator,epochs=20)
Then I just run a loop to forecast, but it's giving me nothing more than a straight line after a few points, as observed below.
Obviously there is a trend for the data to go down, and I would expect to see that.
Is this because my architecture is not sophisticated enough / not the right one to pick up on the general decline of the known data? Have I inappropriately chosen any parameters?
I have tried increasing the number of neurons in the dense layer, units in the LSTM cell, etc. At the moment, the thing that looks like to most effect the resultant curve is to change the
length parameter in my code above. But all this does is make the predictions more sinusoidal.
Thanks for your help!