I have a dataset of points along a wave whose cycles slowly grow in period over time. I have ~47 cycles worth of data. My goal is to forecast at least one whole cycle into the future (around 50 data points). So far, I've tried feeding in 3-5 cycles worth of points into the LSTM input and then tried outputting 1 cycle worth of points for the forecast.
To convert the 1D series data into training data I've been taking the first ~250 points as a
X and the next 50 points as the label
y. I then shift one point forward, and generate a new 300 point "example" consisting of an
y. After the data is converted, I use the last 300 points as a
y for the validation set.
I've been getting really bad results, and I wanted to know if there was a different way to frame this problem. If I'm only using 3-5 cycles as input isn't this potentially loosing information about past data? Or should this connection be captured in the LSTM?
I'm also using one LSTM node in the Keras model and it's set to
stateful. I've noticed that I get the same results whether or not
model.reset_states() is called after each epoch.
I've seen similar question, but most seem to be focused on very short forecasts ranging from 1 to 5 points.
Any suggestions would be really appreciated.