/GutenTAG

GutenTAG is an extensible tool to generate time series datasets with and without anomalies; integrated with TimeEval.

Primary LanguagePythonMIT LicenseMIT

TimeEval logo

A good Timeseries Anomaly Generator.

CI codecov Code style: black PyPI package License: MIT python version 3.7|3.8|3.9|3.10|3.11 Downloads

GutenTAG is an extensible tool to generate time series datasets with and without anomalies. A GutenTAG time series consists of a single (univariate) or multiple (multivariate) channels containing a base oscillation with different anomalies at different positions and of different kinds.

base-oscillations base-oscillations base-oscillations

base-oscillations

tl;dr

  1. Install GutenTAG from PyPI:

    pip install timeeval-gutenTAG

    GutenTAG supports Python 3.7, 3.8, 3.9, 3.10, and 3.11; all other requirements are installed with the pip-call above.

  2. Create a generation configuration file example-config.yaml with the instructions to generate a single time series with two anomalies: A pattern anomaly in the middle and an amplitude anomaly at the end of the series. You can use the following content:

    timeseries:
    - name: demo
      length: 1000
      base-oscillations:
      - kind: sine
        frequency: 4.0
        amplitude: 1.0
        variance: 0.05
      anomalies:
      - position: middle
        length: 50
        kinds:
        - kind: pattern
          sinusoid_k: 10.0
      - position: end
        length: 10
        kinds:
        - kind: amplitude
          amplitude_factor: 1.5
  3. Execute GutenTAG with a seed and let it plot the time series:

    gutenTAG --config-yaml example-config.yaml --seed 11 --no-save --plot

    You should see the following time series:

    Example unsupervised time series with two anomalies

Documentation

GutenTAG's documentation can be found here.

Citation

If you use GutenTAG in your project or research, please cite our demonstration paper:

Phillip Wenig, Sebastian Schmidl, and Thorsten Papenbrock. TimeEval: A Benchmarking Toolkit for Time Series Anomaly Detection Algorithms. PVLDB, 15(12): 3678 - 3681, 2022. doi:10.14778/3554821.3554873

@article{WenigEtAl2022TimeEval,
  title = {TimeEval: {{A}} Benchmarking Toolkit for Time Series Anomaly Detection Algorithms},
  author = {Wenig, Phillip and Schmidl, Sebastian and Papenbrock, Thorsten},
  date = {2022},
  journaltitle = {Proceedings of the {{VLDB Endowment}} ({{PVLDB}})},
  volume = {15},
  number = {12},
  pages = {3678 -- 3681},
  doi = {10.14778/3554821.3554873}
}

Contributing

We welcome contributions to GutenTAG. If you have spotted an issue with GutenTAG or if you want to enhance it, please open an issue first. See Contributing for details.