tymefighter / Forecast

7 stars 3 forks source link

Build Status

Time Series Forecasting Package

This is a python package containing Various Forecasting Algorithms, Forecasting Datasets and, Plotting, Preprocessing and Utility Tools.

Forecasting Algorithms

This package provides (or would provide) various algorithms which work on data containing multivariate target time series, univariate target time series - both with or without exogenous time series. The algorithms are provided in the model subpackage of the time series package ts.

Currently, this package provides the following Forecasting Algorithms,

from ts.model import DeepNN
from ts.model import RnnForecast
from ts.model import SimpleRnnForecast
from ts.model import GruForecast
from ts.model import LstmForecast
from ts.model import ExtremeTime
from ts.model import ExtremeTime2
from ts.model import GmmHmmForecast
from ts.model import GmmHmmLikelihoodSimilarity

Forecasting Data

This package provides Data Generators as well as Datasets. The data subpackage of the time series package ts provides two subpackages named generate and dataset, the first one contains data generators and the second one contains real world datasets.

Currently, we provide the following,

from ts.model.univariate.nonexo import ArmaGenerator
from ts.model.univariate.nonexo import StandardGenerator
from ts.model.univariate.nonexo import PeriodicGenerator
from ts.model.univariate.nonexo import PolynomialGenerator
from ts.model.univariate.nonexo import DifficultGenerator

Plotting, Preprocessing and Utility Tools

This package contains plotting tools for plotting losses, plotting training data and comparing prediction with true (using plots). The plotting tools are available in the plot subpackage of the time series package ts. It also provides utility tools for in the utility subpackage of ts. Access to the global logger and local loggers is provided in the log subpackage of ts.

Package Structure

ts/
|__ data/
|    |__ dataset/
|         |__ AmazonStockPrice
|         |__ RetailSales
|         |__ JaipurWeather
|
|    |__ generate/
|         |__ univariate/
|              |__ nonexo/
|                  |__ ArmaGenerator
|                  |__ StandardGenerator
|                  |__ PeriodicGenerator
|                  |__ PolynomialGenerator
|                  |__ DifficultGenerator
| 
|__ model/
|    |__ RnnForecast
|    |__ SimpleRnnForecast
|    |__ GruForecast
|    |__ LstmForecast
|    |__ DeepNN
|    |__ ExtremeTime
|    |__ ExtremeTime2
|    |__ GmmHmmForecast
|    |__ GmmHmmLikelihoodSimilarity
|
|__ plot/
|    |__ Plot
|
|__ log/
|    |__ ConsoleLogger
|    |__ FileLogger
|    |__ GlobalLogger
|
|__ test/
|    |__ model/..
|    |__ utility/..
|
|__ utility/
|    |__ Utility
|    |__ ForecastDataSequence
|    |__ SaveCallback
|    |__ DatasetUtility
|    |__ Metric

Repository Structure

This repository is structured as follows:

Forecast
|__ other/...
|
|__ notebooks/..
|
|__ ts/...

Existing experiments, tests and example notebooks

The notebooks directory of this repository contains notebooks containing experiments, tests and examples. To be able to run these notebooks, we need to do as follows:

  1. Go to your .bashrc file and add the following line:
    export PYTHONPATH="$PYTHONPATH:<location_of_this_repository>"

where <location_of_this_repository> is the location of this repository in your filesystem.