A package for price forecasting using LSTM networks
Project description
Foresight
Introduction
Foresight is a collection of tools built in Python 3 to forecast the future price movements of industrial metals, using Long Short Term Memory networks. It can take univariate or multivariate datasets and make predictions using single-input single-output (SISO), multi-input single-output (MISO) or multi-input multi-output (MIMO) frameworks.
It was built for the purpose of testing the hypothesis that improved predictive performance can be achieved by applying the multi-task learning paradigm to commodity price forecasting. As such many of the example notebooks are built for this purpose.
The tools can equally be applied to any user chosen datasets, provided the datasets are loaded in the format shown in the example csvs, or are inputed directly as shown in the "generic" notebooks.
Documentation
Full documentation can be found on https://industrial-metals-forecaster.readthedocs.io/en/latest/.
Read the docs will not show the models module online. For more information on the models module refer to the PDF Documentation1
Repository Structure
-
Docs - Contains all files relating to the documentation
-
Foresight - Contains the collection of python files relating to Foresight
-
Data - Contains the time series used to forecast industrial metals prices
-
Notebooks - Contains example notebooks for SISO, MISO and MIMO regression
-
Results/Pths - Contains saved model weights
-
Results/Pickles - Contains saved deeplearning objects
-
Results/Plots - Contains images of predictions and training/val losses
Testing
Continuous integration best practices has been utilized, using Travis CL. With the tests methodology used being unit testing written deveoped using the Pytest library.
Relevant Author and Course Information
Author: Oliver Boom Github: OliverJBoom CID: 01593306
This collection of tools was built as part of the Applied Computational Science & Engineering MSc, completed at Imperial College London. It forms a composite part of the Independent Research Project (Module Code: ASCE9) and was conducted under the supervision of Dr Stephen Neethling. This project is also understaken in partnership with Commodities AI (ChAI), under the supervision of Dr Tristan Fletcher.
With the exception of parts of the ChaiDB class (the init, get_instrument_data, close_db_connection and get_list_datascope_instruments functions), all of the work contained within this repository is my own.
License
Foresight is licensed under the MIT license. See LICENSE.
Footnotes
1 Pytorch is too heavy a dependency for Read the Docs Docker containers. And so requires mocking when passing through the Sphinx autodocumentation. However, inheritance from mocked classes is not supported. It is a known issue in Read the Docs.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.