/PailoTS

Predictive Artificial Intelligence Leveraged Operations with Time Series (PailoTS)

Primary LanguageJupyter Notebook

Contributors Stargazers Issues LinkedIn


Logo

PailoTS : Predictive AI operations for time series

Pythonic framework for predicting future failures in AIOps time series.
Explore the docs »

View Demo · Report Bug · Request Feature

Table of Contents
  1. About The Project
  2. Getting Started
  3. Usage
  4. Roadmap
  5. Research work
  6. Contributing
  7. License
  8. Contact
  9. Acknowledgments

About The Project

Logo

This framework provides a set of tools to explore, analyse, predict time series. The main aspect is its capacity to deal with a specific task that of predicting if a given time series will reach a certain value in the near future.

Tasks accomplished by the framework:

  • Toolkit : EDA, cleaning and plots of given time series dataset.
  • Time series forecasting models : Implements using a template classes logic multiple approaches for time series forecasting (statistical, machine learning and deep learning)
  • Novel approach PAE-LSTM-BiLSTM : Proposed augmentation and anomaly detection with classification architecture for predicting if a given pattern leads to the time series converging towards a lower limit

This framework is optimized for sysadmin and DevOPs operations by extracting information about different KPIs evolution in a datacenter and predicting future failures.

(back to top)

Built With

  • Python
  • Javascript
  • Vue
  • Angular
  • Svelte
  • Laravel
  • Bootstrap
  • JQuery

(back to top)

Getting Started

You can use the framework :

  • Through the web user-interface :
python main.py
  • Creating an instance of the model in a script :
from pathlib import Path
import sys
path = str(Path(Path(__file__).parent.absolute()).parent.absolute())
sys.path.insert(0, path)


import pandas as pd
from tbats import TBATS

from models.statistical.decomposition_models import Tbats

if __name__ == '__main__':
    df = pd.read_csv('../../data/test_datasets/test5.csv')

    #TBATS model
    mod = Tbats.Tbats(df, target_col="_value")

    mod.fit(seasonal_periods=[12, 12*7])

    
    mod.predict_in_sample()
    mod.predict_out_sample(n_steps=10*12)
    mod.plot()

Prerequisites

Some models are coded from scratch whereas others may require installing some packages like Altair, Statsmodels, Darts, ...etc.

  • installing requirements
    pip install requirements.txt

Roadmap

  • Integrate the PAE-LSTM-BiLSTM contribution
  • Integrate real-stream data flows
  • Train the novel approach on multi-label case (predict failure for a given time-window)
  • Add a tutorial notebook for the framework
  • Parallel training using GPUs for DL models

See the open issues for a full list of proposed features (and known issues).

(back to top)

Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

(back to top)

Research work

Poster

License

Distributed under the MIT License. See LICENSE.txt for more information.

(back to top)

Team & contact

(back to top)

(back to top)