timeeval
Evaluation Tool for Anomaly Detection Algorithms on Time Series
Science Score: 49.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
✓DOI references
Found 4 DOI reference(s) in README -
○Academic publication links
-
✓Committers with academic emails
1 of 10 committers (10.0%) from academic institutions -
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (18.2%) to scientific vocabulary
Keywords
Keywords from Contributors
Repository
Evaluation Tool for Anomaly Detection Algorithms on Time Series
Basic Info
- Host: GitHub
- Owner: TimeEval
- License: mit
- Language: Jupyter Notebook
- Default Branch: main
- Homepage: https://timeeval.readthedocs.io
- Size: 24.9 MB
Statistics
- Stars: 135
- Watchers: 7
- Forks: 18
- Open Issues: 33
- Releases: 0
Topics
Metadata Files
README.md
TimeEval
Evaluation Tool for Anomaly Detection Algorithms on Time Series.
[](https://github.com/TimeEval/TimeEval/actions/workflows/build.yml) [](https://timeeval.readthedocs.io/en/latest/?badge=latest) [](https://codecov.io/gh/TimeEval/TimeEval) [](https://github.com/psf/black) [](https://badge.fury.io/py/TimeEval) [](https://opensource.org/licenses/MIT)  [](https://pepy.tech/project/timeeval)See TimeEval Algorithms for algorithms that are compatible to this tool.
The algorithms in that repository are containerized and can be executed using the DockerAdapter of TimeEval.
If you use TimeEval, please consider citing our paper.
TimeEval's documentation is hosted at https://timeeval.readthedocs.io.
Features
- Large integrated benchmark dataset collection with more than 700 datasets
- Benchmark dataset interface to select datasets easily
- Adapter architecture for algorithm integration
- DockerAdapter
- JarAdapter
- DistributedAdapter
- MultivarAdapter
- ... (add your own adapter)
- Large collection of existing algorithm implementations (in TimeEval Algorithms repository)
- Automatic algorithm detection quality scoring using AUC (Area under the ROC curve, also c-statistic) or range-based metrics
- Automatic timing of the algorithm execution (differentiates pre-, main-, and post-processing)
- Distributed experiment execution
- Output and logfile tracking for subsequent inspection
Installation
TimeEval can be installed as a package or from source.
:warning: Attention!
Currently, TimeEval is tested only on Linux and macOS and relies on unixoid capabilities. On Windows, you can use TimeEval within WSL. If you want to use the provided detection algorithms, Docker is required.
Installation using pip
Builds of TimeEval are published to PyPI:
Prerequisites
- python >= 3.9, < 3.13
:warning: Attention!
A dependency of TimeEval prevents us from supporting Python versions >= 3.13:
prtsis not updated and depends onNumPy<2.0.0. However, there is no NumPy version below2.0.0that supportsPython>=3.13.
pip >= 20
Docker (for the anomaly detection algorithms)
(optional)
rsyncfor distributed TimeEval
Steps
You can use pip to install TimeEval from PyPI:
sh
pip install TimeEval
Installation from source
tl;dr
bash
git clone git@github.com:TimeEval/TimeEval.git
cd timeeval/
conda create -n timeeval python=3.9
conda activate timeeval
pip install .
Prerequisites
The following tools are required to install TimeEval from source:
- git
- Python > 3.9 and Pip (anaconda or miniconda is preferred)
Steps
Clone this repository using git and change into its root directory.
Create a conda-environment and install all required dependencies:
sh
conda create -n timeeval python=3.9
conda activate timeeval
pip install .
- If you want to make changes to TimeEval or run the tests, you need to install the development dependencies with:
pip install ".[ci]". The optional extra dependencies".[dev]"contains additional dependencies for the notebooks and scripts packaged with TimeEval.
Usage
Example script:
```python from pathlib import Path from typing import Dict, Any
import numpy as np
from timeeval import TimeEval, DatasetManager, Algorithm, TrainingType, InputDimensionality from timeeval.adapters import FunctionAdapter from timeeval.algorithms import subsequence_if from timeeval.params import FixedParameters
Load dataset metadata
dm = DatasetManager(Path("tests/exampledata"), createif_missing=False)
Define algorithm
def myalgorithm(data: np.ndarray, args: Dict[str, Any]) -> np.ndarray: scorevalue = args.get("scorevalue", 0) return np.fulllike(data, fillvalue=scorevalue)
Select datasets and algorithms
datasets = dm.select() datasets = datasets[-1:]
Add algorithms to evaluate...
algorithms = [ Algorithm( name="MyAlgorithm", main=FunctionAdapter(myalgorithm), dataasfile=False, trainingtype=TrainingType.UNSUPERVISED, inputdimensionality=InputDimensionality.UNIVARIATE, paramconfig=FixedParameters({"scorevalue": 1.}) ), subsequenceif(params=FixedParameters({"n_trees": 50})) ] timeeval = TimeEval(dm, datasets, algorithms)
execute evaluation
timeeval.run()
retrieve results
print(timeeval.get_results()) ```
Citation
If you use TimeEval 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
bibtex
@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}
}
Owner
- Name: TimeEval
- Login: TimeEval
- Kind: organization
- Location: Germany
- Website: https://timeeval.readthedocs.io
- Repositories: 1
- Profile: https://github.com/TimeEval
Time series anomaly detection tools from the HPI Information Systems group
GitHub Events
Total
- Issues event: 4
- Watch event: 29
- Delete event: 14
- Issue comment event: 15
- Push event: 23
- Pull request review event: 13
- Pull request event: 27
- Fork event: 3
- Create event: 13
Last Year
- Issues event: 4
- Watch event: 29
- Delete event: 14
- Issue comment event: 15
- Push event: 23
- Pull request review event: 13
- Pull request event: 27
- Fork event: 3
- Create event: 13
Committers
Last synced: over 1 year ago
Top Committers
| Name | Commits | |
|---|---|---|
| CodeLionX | s****l@t****e | 449 |
| wenig | i****o@p****e | 147 |
| CodeLionX | s****l@h****e | 98 |
| Sebastian Schmidl | C****X | 44 |
| dependabot[bot] | 4****] | 29 |
| Phillip Wenig | p****g@h****e | 9 |
| Shubham Mamgain | 4****0 | 4 |
| Phillip Wenig | w****g | 3 |
| github-actions[bot] | 4****] | 2 |
| Lukas Budach | l****h@s****e | 1 |
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: 6 months ago
All Time
- Total issues: 19
- Total pull requests: 60
- Average time to close issues: 5 days
- Average time to close pull requests: 6 days
- Total issue authors: 9
- Total pull request authors: 7
- Average comments per issue: 1.0
- Average comments per pull request: 0.85
- Merged pull requests: 56
- Bot issues: 0
- Bot pull requests: 36
Past Year
- Issues: 3
- Pull requests: 25
- Average time to close issues: 6 days
- Average time to close pull requests: 1 day
- Issue authors: 3
- Pull request authors: 4
- Average comments per issue: 1.67
- Average comments per pull request: 0.68
- Merged pull requests: 23
- Bot issues: 0
- Bot pull requests: 21
Top Authors
Issue Authors
- CodeLionX (9)
- SebastianSchmidl (2)
- hadysysdev (2)
- wenig (2)
- hlj2546 (1)
- gonzachiar (1)
- zemogoravla (1)
- fahmirzldi (1)
- aleLoPrete (1)
Pull Request Authors
- dependabot[bot] (45)
- CodeLionX (21)
- mshubham00 (11)
- github-actions[bot] (8)
- wenig (5)
- SebastianSchmidl (3)
- gonzachiar (2)
Top Labels
Issue Labels
Pull Request Labels
Packages
- Total packages: 1
-
Total downloads:
- pypi 3,697 last-month
- Total dependent packages: 0
- Total dependent repositories: 1
- Total versions: 17
- Total maintainers: 2
pypi.org: timeeval
Evaluation Tool for Time Series Anomaly Detection Methods
- Homepage: https://github.com/TimeEval/TimeEval
- Documentation: https://timeeval.readthedocs.io/
- License: mit
-
Latest release: 1.5.0
published 9 months ago
Rankings
Dependencies
- RalfG/python-wheels-manylinux-build v0.4.2-manylinux2010_x86_64 composite
- actions/checkout v3 composite
- actions/download-artifact v3 composite
- actions/upload-artifact v3 composite
- codecov/codecov-action v3 composite
- conda-incubator/setup-miniconda v2.2.0 composite
- pypa/gh-action-pypi-publish v1.6.4 composite
- schneegans/dynamic-badges-action v1.6.0 composite
- actions/checkout v3 composite
- codecov/codecov-action v3 composite
- conda-incubator/setup-miniconda v2.2.0 composite
- myst-parser ==0.18.0
- sphinx ==5.0.2
- sphinx_rtd_dark_mode ==1.2.4
- sphinx_rtd_theme ==1.0.0
- click ==8.0.2
- dask ==2021.5.1
- docker >=4.4.0
- durations >=0.3.0
- numpyencoder >=0.3.0
- prts ==1.0.0.3