An open source library for Fuzzy Time Series in Python
Go to file
Petrônio Cândido de Lima e Silva ac9b095a91
Update README.md
Adding DOI, reference and installation information on README
2018-03-09 13:56:23 -03:00
pyFTS Configuring the new tag for pyPI release 2018-03-06 19:47:14 -03:00
LICENSE Global refactoring for python packaging system 2017-07-07 10:54:28 -03:00
MANIFEST Configuring the new tag for pyPI release 2018-03-06 17:33:08 -03:00
README.md Update README.md 2018-03-09 13:56:23 -03:00
setup.cfg -Data folder 2018-02-26 15:57:59 -03:00
setup.py Configuring the new tag for pyPI release 2018-03-07 12:44:11 -03:00

pyFTS - Fuzzy Time Series for Python

What is pyFTS Library?

This package is intended for students, researchers, data scientists or whose want to exploit the Fuzzy Time Series methods. These methods provide simple, easy to use, computationally cheap and human-readable models, suitable for statistic laymans to experts.

This project is continously under improvement and contributors are well come.

How to reference pyFTS?

DOI

Silva, P. C. L. et al. pyFTS: Fuzzy Time Series for Python (Version v4.0). Belo Horizonte. 2018. DOI: 10.5281/zenodo.1194859. Url: http://doi.org/10.5281/zenodo.1194859

How to install pyFTS?

First of all pyFTS was developed and tested with Python 3.6. To install pyFTS using pip tool

pip install -U pyFTS

Ou pull directly from the GitHub repo:

pip install -U git+https://github.com/petroniocandido/pyFTS

What are Fuzzy Time Series (FTS)?

Fuzzy Time Series (FTS) are non parametric methods for time series forecasting based on Fuzzy Theory. The original method was proposed by [1] and improved later by many researchers. The general approach of the FTS methods, based on [2] is listed below:

  1. Data preprocessing: Data transformation functions contained at pyFTS.common.Transformations, like differentiation, Box-Cox, scaling and normalization.

  2. Universe of Discourse Partitioning: This is the most important step. Here, the range of values of the numerical time series Y(t) will be splited in overlapped intervals and for each interval will be created a Fuzzy Set. This step is performed by pyFTS.partition module and its classes (for instance GridPartitioner, EntropyPartitioner, etc). The main parameters are:

Check out the jupyter notebook on pyFTS/notebooks/Partitioners.ipynb for sample codes.

  1. Data Fuzzyfication: Each data point of the numerical time series Y(t) will be translated to a fuzzy representation (usually one or more fuzzy sets), and then a fuzzy time series F(t) is created.

  2. Generation of Fuzzy Rules: In this step the temporal transition rules are created. These rules depends on the method and their characteristics:

  • order: the number of time lags used on forecasting
  • weights: the weighted models introduce weights on fuzzy rules for smoothing
  • seasonality: seasonality models depends
  • steps ahead: the number of steps ahed to predict. Almost all standard methods are based on one-step-ahead forecasting
  • forecasting type: Almost all standard methods are point-based, but pyFTS also provides intervalar and probabilistic forecasting methods.
  1. Forecasting: The forecasting step takes a sample (with minimum length equal to the model's order) and generate a fuzzy outputs (fuzzy set(s)) for the next time ahead.

  2. Defuzzyfication: This step transform the fuzzy forecast into a real number.

  3. Data postprocessing: The inverse operations of step 1.