Crate anomaly_detection

Source
Expand description

§AnomalyDetection.rs

Time series AnomalyDetection for Rust

Learn how it works

Build Status

§Installation

Add this line to your application’s Cargo.toml under [dependencies]:

anomaly_detection = "0.3"

§Getting Started

Detect anomalies in a time series

use anomaly_detection::AnomalyDetector;

let series = vec![
    5.0, 9.0, 2.0, 9.0, 0.0, 6.0, 3.0, 8.0, 5.0, 18.0,
    7.0, 8.0, 8.0, 0.0, 2.0, 15.0, 0.0, 5.0, 6.0, 7.0,
    3.0, 6.0, 1.0, 4.0, 4.0, 4.0, 30.0, 7.0, 5.0, 8.0
];
let period = 7; // number of observations in a single period

let res = AnomalyDetector::fit(&series, period).unwrap();

Get anomalies

res.anomalies();

§Parameters

Set parameters

AnomalyDetector::params()
    .alpha(0.05)                    // level of statistical significance
    .max_anoms(0.1)                 // maximum number of anomalies as percent of data
    .direction(Direction::Both)     // Positive, Negative, or Both
    .verbose(false)                 // show progress

§Credits

This library was ported from the AnomalyDetection R package and is available under the same license.

§References

§History

View the changelog

§Contributing

Everyone is encouraged to help improve this project. Here are a few ways you can help:

To get started with development:

git clone https://github.com/ankane/AnomalyDetection.rs.git
cd AnomalyDetection.rs
cargo test

Structs§

AnomalyDetectionParams
A set of anomaly detection parameters.
AnomalyDetectionResult
An anomaly detection result.
AnomalyDetector
An anomaly detector.

Enums§

Direction
The direction to detect anomalies.
Error
The error type for anomaly detection.

Functions§

params
Creates a new set of parameters.