Time Series Analysis for Simulation of Technological Processes
Python 3.10
The primary purpose of the TSAD (Python module) is to make life easier for researchers who use ML techniques to solve the following problems:
- Fault Detection of industrial equipment
- Improvement of technological processes of industrial equipment
- Performance boost
- Cost reduction
- Quality control and management
In TSAD, the problem of fault detection is reduced to the problem of detecting time series anomalies using a well-known technique:
- Forecast a multivariate Time Series (TS) one point ahead (Also works for univariate TS)
- Compute residuals between forecast and true values
- Apply analysis of residuals and thus find anomalies
Installation through PyPi:
pip install -U tsad
import pandas as pd
from tsad.base.pipeline import Pipeline
from tsad.tasks.eda import HighLevelDatasetAnalysisTask, TimeDiscretizationTask
from tsad.tasks.eda import FindNaNTask, EquipmentDowntimeTask
from tsad.tasks.preprocess import ScalingTask, ValueRangeProcessingTask, ResampleProcessingTask
from tsad.tasks.preprocess import FeatureProcessingTask, SplitByNaNTask, TrainTestSplitTask
from tsad.tasks.anomalyDetection import ResidualAnomalyDetectionTask
from tsad.base.datasets import load_tsad_example
data = load_tsad_example().frame
pipeline = Pipeline([
HighLevelDatasetAnalysisTask(),
TimeDiscretizationTask(),
FindNaNTask(),
EquipmentDowntimeTask(),
ResampleProcessingTask(),
FeatureProcessingTask(),
SplitByNaNTask(),
PrepareSeqSamplesTask(len_seq=10),
ResidualAnomalyDetectionTask(),
], show=False)
df = pipeline.fit(data)
After that, you can see:
More details you can find here
We encourage the community also to provide feedback on the desired functionality.
We plan to implement:
-
More complex preprocessing of time series, especially in the area of reduction to a single sampling rate (problem of unevenly spaced time series)
-
Implement other SOTA algorithms
-
The ability to implement any model in our pipeline by just providing a link to GitHub. It seems to be a handy feature as many researchers need to verify their models with others.
-
Integration with most forecasting and anomaly detection benchmarks.
Some interesting links:
- https://github.com/salesforce/Merlion
- https://github.com/fastforwardlabs/deepad
- https://github.com/HendrikStrobelt/LSTMVis
- https://github.com/TezRomacH/python-package-template
- https://github.com/khundman/telemanom
- https://github.com/signals-dev/Orion
- https://github.com/NetManAIOps/OmniAnomaly
- https://github.com/unit8co/darts
- https://github.com/tinkoff-ai/etna-ts
- https://github.com/yzhao062/pyod
- https://www.radiativetransfer.org/misc/typhon/doc/modules.html#datasets How include dataset
- https://github.com/AutoViML/Auto_TS
- https://nuancesprog.ru/p/15161/
- https://www.sktime.org/en/stable/
- https://github.com/zalandoresearch/pytorch-ts
- https://github.com/qdata/spacetimeformer
- https://joaquinamatrodrigo.github.io/skforecast/0.6.0/index.html
Про архитектуру:
https://pypi.org/project/catalyst/
Merlion | Alibi Detect | Kats | pyod | GluonTS | RRCF | STUMPY | Greykite | Prophet | pmdarima | deepad | TSAD | |
---|---|---|---|---|---|---|---|---|---|---|---|---|
Forecasting (Прогнозирование) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ||||
Anomaly Detection (Поиск аномалий) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ||
Metrics (Алгоритмы оценки) | ✅ | ✅ | ✅ | ✅ | ✅ | |||||||
Ensembles (Ансамбли) | ✅ | ✅ | ✅ | ✅ | ||||||||
Benchmarking (Бенчмарки и датасеты) | ✅ | ✅ | ✅ | ✅ | ||||||||
Visualization (Визуализация результатов) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ||||||
Data preprocessing (Предварительная обработка данных) | ✅ | ✅ | ||||||||||
Automated EDA (Автоматизированный разведочный анализ данных) | ✅ |
- TODO
└── repo
├───docs # documentation
├───tutorials # examples
├───tsad # files of library