8 releases
0.3.0 | Sep 26, 2023 |
---|---|
0.2.3 | Mar 19, 2022 |
0.2.2 | Jan 4, 2022 |
0.2.1 | Dec 16, 2021 |
0.1.2 | Oct 18, 2021 |
#50 in #time-series
113 downloads per month
Used in zbusdg
18KB
246 lines
AnomalyDetection.rs
Time series AnomalyDetection for Rust
Learn how it works
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:
- Report bugs
- Fix bugs and submit pull requests
- Write, clarify, or fix documentation
- Suggest or add new features
To get started with development:
git clone https://github.com/ankane/AnomalyDetection.rs.git
cd AnomalyDetection.rs
cargo test
Dependencies
~63KB