Skip to content

Fengrui-Liu/StreamAD

Repository files navigation

StreamAD

StreamAD Logo

Anomaly detection for data streams/time series. Detectors process the univariate or multivariate data one by one to simulte a real-time scene.

Documentation

PyPI PyPI - Python Version PyPI - Implementation

Read the Docs GitHub Downloads

example workflow codecov Maintainability FOSSA Status


Installation

The stable version can be installed from PyPI:

pip install streamad

The development version can be installed from GitHub:

pip install git+https://github.com/Fengrui-Liu/StreamAD

Quick Start

Start once detection within 5 lines of code. You can find more example with visualization results here.

from streamad.util import StreamGenerator, UnivariateDS
from streamad.model import SpotDetector

ds = UnivariateDS()
stream = StreamGenerator(ds.data)
model = SpotDetector()

for x in stream.iter_item():
    score = model.fit_score(x)

Models

For univariate time series

If you want to detect multivarite time series with these models, you need to apply them on each feature separately.

Model Example API Usage Paper
KNNCAD streamad.model.KNNDetector Conformalized density- and distance-based anomaly detection in time-series data
SPOT streamad.model.SpotDetector Anomaly detection in streams with extreme value theory
Spectral Residual streamad.model.SRDetector Time-series anomaly detection service at microsoft
Z score streamad.model.ZScoreDetector Standard score
One-class SVM streamad.model.OCSVMDetector One-class SVM
MAD streamad.model.MadDetector Median absolute deviation
SARIMAX streamad.model.SArimaDetector Seasonal Arima Detector

For multivariate time series

These models are compatible with univariate time series.

Models Example API Usage Paper
xStream streamad.model.xStramDetector Xstream: outlier detection in feature-evolving data streams
RShash streamad.model.RShashDetector Subspace Outlier Detection in Linear Time with Randomized Hashing
HSTree streamad.model.HSTreeDetector Fast Anomaly Detection for Streaming Data
LODA streamad.model.LodaDetector Lightweight on-line detector of anomalies
RRCF streamad.model.RrcfDetector Robust random cut forest based anomaly detection on streams