FluxEV#

oats.models.predictive.fluxev.EWMA(x, alpha, flip_x=True)[source]#
class oats.models.predictive.fluxev.FluxEVModel(window: int = 10, window_smoothing=None, q=0.0001, level=0.95, **kwargs)[source]#

Bases: Model

FluxEV

Implementation from the paper with QoL improvements for production.

Li, Jia and Di, Shimin and Shen, Yanyan and Chen, Lei “FluxEV: A Fast and Effective Unsupervised Framework for Time-Series Anomaly Detection” https://doi.org/10.1145/3437963.3441823

Parameters:
  • window (int, optional) – main window length. Defaults to 10.

  • window_smoothing (int, optional) – window length for smoothig operation, if None then same as window. Defaults to None.

  • q (float, optional) – q level such that P(threshold) < q. Defaults to 1e-4.

  • level (float, optional) – threshold to fit tail distribution. Defaults to 0.95.

  • memory (int, optional) – how many data points for the tails. Defaults to 2000.

  • bw_reset_every (int, optional) – used for method of moments estimation to prevent a bad fit (MoM is not robust against outliers); use distribution from kde estimation to compute tail level; this parameter dictates how often bandwidth is refitted. Defaults to 2000.

  • support (float, optional) – used for method of moments estimation to prevent a bad fit (MoM is fast but unreliable); threshold is computed as the maximum of GPD and support * HalfNormal. Defaults to 0.

  • init_cutoff (float, optional) – used for method of moments estimation to prevent a bad fit (MoM is not robust against outliers); only bottom init_cutoff deciles are used to fit the GPD distribution. Defaults to 1.

  • mle (bool, optional) – whether to use MLE for GPD parameter estimation; setting True will result in a slow down in performance. Default to False.

fit(data, **kwargs)[source]#
get_scores(data)[source]#