This repository contains the work of my Machine Learning course project. I focused on different models for Time Series Forecasting.
Environment can be created using:
conda create -n suTSF python=3.8
conda activate suTSF
Before running next commands install Pytorch with cuda for your system (cuda is required for SCINet model). After installing Pytorch the following packages need to be installed:
conda install nb_conda seaborn
conda install numpy pandas
conda install scikit-learn tensorboard -c conda-forge
conda install pytorch-forecasting
conda install statsmodels -c conda-forge
If the previous instalation fails, the whole conda environment is located in environment.yml
file. The environment can be created and run with:
conda env create -f environment.yml
conda activate suTSF
It is discouraged to create conda environment from file due to some CUDA specific packages.
start jupyter notebook
must be run from the root of this repository.
This repository uses five different datasets: electricity, traffic, solar, exchange, and ETTh1.
Electricity dataset can be downloaded here. Traffic, exchange, solar, and ETTh1 datasets can be downloaded here. They must be placed inside data
folder in the root of this directory.
For SCINet the data from the second link must be placed inside SCINet/datasets/
using the same folder structure as the one in the link.
We have code for four different models. Each model is in its own folder:
- ARIMA (part of statsmodels package)
- TRMF (TRMF on GitHub)
- DeepAR (part of pytorch-forecasting package)
- SCINet (SCINet on GitHub)
Inside first three folders is a Jupyter Notebook called <model>_test.ipynb
which has the code for reproducibility. The SCINet model is run with provided commands in author's README.md file.
*.xlsx
files contain the results of my tests and experiments.