The goal of the project is to predict the next 6 month of a time series. The result can be seen in the following plot:
The results where obtained with window size 600
, forecast 200
and 20
epochs of training on the timeseries_5h.csv
data set.
The project is using Python 3.7 and Anaconda. To install the Anaconda environment use
conda env create -f environment.yml
It uses a two-layer LSTM as sequence to sequence model. The model predicts a configurable amount of future data points from a given sequence of data points. It is assumed that the data points are equally spaced.
To simplify training the difference between data points is used rather than there absolute value and the data set is normalized.
Usually the output of the model is much shorter than the required 6 month period. In order to create predictions for the full 6 month we predict one window, then append it to the data set and use the tail of the data set for the next prediction. This is repeated until the predictive tail is 6 month long.
The figure plot_single.png
shows input, label and prediction for a single data window.