Skip to main content

trendalation

An anomaly detection package for all sorts of trends & time series data. The library leverages algorithms like procrustes analysis to compare and contrast the general shape & trajectory of different trends. The procrustses analysis technique could be leveraged to get the minimum possible mean squared error between 2 distributions (after mathematical transformations). Using the training dataset, an ideal reference trace is determined for comparision along with a classification threshold from the generated error distribution using procrustes against this reference curve.

before_proc_demo after_proc_demo

Installation

Dependencies

trendalation requires:

  • Python (>= 3.8)
  • NumPy (>= 1.25.0)
  • Scikit-Learn (>=1.3.0)
  • SciPy (>= 1.11.1)

Using pip

The easiest way to install trendalation is using pip: pip install trendalation

Documentation

Usage

To train a classifier on a collection of traces, a classifier can be trained on the trace distribution. The model sets up the necessary classification criterion by analyzing various population statistics and trends. eg-

from trendalation.classification import ProcClassifier
clf = ProcClassifier()
clf.fit()

To futher optimize the process to the classification criterion determination, additional (optional) training parameters can be provided-

  • y: The target values (binary class labels) as integers with 1 representing an anomaly. If provided, classifier is fitted only on "good" samples in an attempt to get higher errors with "bad" samples against the reference curve.
  • threshold: Provide a percentile value to determine the threshold value on the procrustes error distribution.
  • normalize: Option to normalize traces with respect to themselves before fitting. Useful when traces have highly variables ranges. For example, stock prices.
  • ci_width: Confidence interval width parameter. Useful for approximating the location of the divergence or the anomaly on a trace.

The procrustes and trace normalizing functionality can be directly imported from the metric module-

from trendalation.metrics import procrustes
trace1_transformed, trace2_transformed, disparity = procrustes(trace1, trace2)

Help and Support

In order to report bugfixes and new feature requests, simply create a new issue on the repository. The issues will be reviewed by the authors on a regular basis & you're welcome to work on any open issues.

Contribution

This project is a community effort, and everyone is welcome to contribute. Feel free to work on any open issues and setup PRs.

Release files for trendalation 1.0.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for trendalation 1.0.2
File Size Uploaded
trendalation-1.0.2.tar.gz 6.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for trendalation 1.0.2
File Interpreter ABI Platform
trendalation-1.0.2-py3-none-any.whl Python 3 none any Details

Total release size: 13.3 kB

Release files / trendalation-1.0.2.tar.gz

Download URL trendalation-1.0.2.tar.gz
Size 6.8 kB
Tags Source
SHA-256 checksum
How to use checksums
4b030755256a723a27086b06876f4cc35c0283d0e9101c22753e4aaea426e942
BLAKE2b-256 checksum
How to use checksums
03f5c33d677df475e2b0c770851abd5286e39f8d3bf15461944bb8919b9185fe
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.9.16

Release files / trendalation-1.0.2-py3-none-any.whl

Download URL trendalation-1.0.2-py3-none-any.whl
Size 6.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d996108f56fb1b9822f8ae88bbfcb76acdcbbab4cba647ab8c53fde9c0ca8c00
BLAKE2b-256 checksum
How to use checksums
799acf3745efd517377504488b85466621488322d9df6150394821db9c0233a4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.9.16

Release history Release notifications | RSS feed

This release

1.0.2 This release

2 release files

1.0.1

2 release files

1.0.0

2 release files

0.0.1

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page