Skip to content

Time series anomaly detection via decomposition and gaussian process regression.

License

Notifications You must be signed in to change notification settings

Lleyton-Ariton/oddity

Repository files navigation



Logo






Oddity: Time Series Anomaly Detection

GPLv3 License GitHub Release PyPi Version made-with-rust

Oddity is a time series anomaly detection tool for Python, implemented in Rust. Oddity is capable of learning trend, global seasonality and even local seasonality from time series data, and works best in these situations.

Oddity Demo: flagging severe anomalies

Being written in Rust, Oddity is incredibly fast and can generally fit to even a few thousand time steps in minimal time.

Oddity also provides a few other tools along with anomaly detection, such as:

  • STL decomposition
  • gaussian process fitting
  • gaussian distribution fitting
  • Periodicity inference

More functionality along with general optimizations will be added in the future.

Currently Oddity is intended to be used on static datasets, however online learning can potentially be implemented by using a rolling/sliding window. With enough hacking, it can potentially also be used for forecasting.

Oddity Demo

Web app demo of the Oddity engine detecting anomalies in some data sets. The web app was deployed on a google cloud kubernetes cluster open to the public, but will not be forever available due to ressource reasons.

Oddity Demo: flagging severe anomalies

Important Links

The following are some important links for more information:

PyPi: https://pypi.org/project/oddity/

Oddity Engine (Rust): https://github.com/Lleyton-Ariton/oddity-engine

Oddity Demo: https://github.com/Lleyton-Ariton/oddity-demo

Example/Tutorial: https://medium.com/houston-we-have-a-problem-anomaly-detection-methods

Extra

For some extra information on time series data/anomaly detection, you can check out my medum article series Houston, we have a problem.