Published September 25, 2024 | Version 1.3.1
Python Library Restricted

Topological Data Analysis for Anomaly Detection (TDAAD)

Description

tdaad provides machine learning algorithms for analyzing timeseries data through the lense of Topological Data Analysis, and deriving anomaly scores.

The targeted input is an object X representing a multiple time series with variables columns and timestamps lines. We use the term multiple time series to describe a set of univariate timeseries that describe a system or object. Note that the package does not handle analysis of a single univariate timeseries.

The main idea of this package is to analyze time series with topological methods.

Documentation

User Manual

Documentation is available online.

Methodological Guidelines

  1. Methodological Guideline for Anomaly Detection Models
  2. Methodological Guideline for Time Series Anomaly Detection

Benchmarks

  1. Anomaly Detection Models Use Case level document
  2. Unsupervised Anomaly Detection and Explainability tools for Time Series

Demonstrators

  • A pubic dataset based demonstrator is available here. It uses the Server Machine Dataset from OmniAnomaly
  • A restricted demonstrator on an anomaly detection use case is available here.
  • A restricted demonstrator on a demand forecasting use case is available here.

Support

Support for TDAAD must be obtained by sending an email to support@confiance.ai

Ensure your email contains :

  • Your name
  • A link to this page
  • the version you are working with
  • A clear description of the problematic (bug, crash, feature or help request)
  • A full description of the problem whichallow to reproduce it
  • Any file or screenshort element mandatory for the full understanding of the problematic

 

Files

Files

Restricted

The record is publicly accessible, but files are restricted to users with access.

Additional details

Trustworthy Attributes
Reliability
Robustness
Engineering roles
Engineering workbench Leader
Data Engineer
Use cases
Time series
Functional Set
Robustness
Operation
Functional maturity
Technological maturity
Image Link
data:image/png;base64,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U3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJYTVAgQ29yZSA0LjQuMC1FeGl2MiI+CiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgIHhtbG5zOnN0RXZ0PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VFdmVudCMiCiAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICB4bWxuczpHSU1QPSJodHRwOi8vd3d3LmdpbXAub3JnL3htcC8iCiAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgeG1wTU06RG9jdW1lbnRJRD0iZ2ltcDpkb2NpZDpnaW1wOmM0MzliYmFkLWRhOTktNGExYi05YTE0LWMwZjZlZmEyNTI4OCIKICAgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo0MmI2NmViMy1lNjYxLTQ5N2QtOTRhNi04YTcxN2QwZTUzNTEiCiAgIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDpjMDFlODJhMS1hOTM5LTQ3ZmMtYTFjMC1kNmIxMmNhMTM5MWUiCiAgIGRjOkZvcm1hdD0iaW1hZ2UvcG5nIgogICBHSU1QOkFQST0iMi4wIgogICBHSU1QOlBsYXRmb3JtPSJXaW5kb3dzIgogICBHSU1QOlRpbWVTdGFtcD0iMTY4MjU4MzkyMDgzNjQ1OCIKICAgR0lNUDpWZXJzaW9uPSIyLjEwLjMwIgogICB0aWZmOk9yaWVudGF0aW9uPSIxIgogICB4bXA6Q3JlYXRvclRvb2w9IkdJTVAgMi4xMCI+CiAgIDx4bXBNTTpIaXN0b3J5PgogICAgPHJkZjpTZXE+CiAgICAgPHJkZjpsaQogICAgICBzdEV2dDphY3Rpb249InNhdmVkIgogICAgICBzdEV2dDpjaGFuZ2VkPSIvIgogICAgICBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjg0ZjZkNTQxLWQ1YzYtNDQ3NC1hMjMxLWUxNTYyZDE5ZjU3YyIKICAgICAgc3RFdnQ6c29mdHdhcmVBZ2VudD0iR2ltcCAyLjEwIChXaW5kb3dzKSIKICAgICAgc3RFdnQ6d2hlbj0iMjAyMy0wNC0yN1QxMDoyNToyMCIvPgogICAgPC9yZGY6U2VxPgogICA8L3htcE1NOkhpc3Rvcnk+CiAgPC9yZGY6RGVzY3JpcHRpb24+CiA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9InciPz79Qlk6AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH5wQbCBkUOsTbGQAAHPdJREFUeNrtnXl8FdXZx78RggtiRVxCq0bQVqXquOFah1eLRcWtr4grakndtdVq9bWNdenVWq2tdnXprUtxQ1xQKaigMFarxKqjVC0uGFEgCgVB2UneP56TmoSb5M69M/fe3Py+n08+gdw5M2fOnPnd85zznOcBIYQQQgghhBBCCCGEEEIIIYQQQgghhBBCCCGEEEIIIYQQQgghhBBCCCGEEEIIIYQQQgghhBBCCCGEEEIIIYQQQgghhBBCCCGEEEIIIYQQQgghhBBCCCGEEEIIIYQQQgghhBAiDirUBCInPH9dYGOgCtgc6Af0AdYHerY4shFYBiwBFgGfAvOA+YTBMjWkkGCJ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