3个不稳定版本
0.3.1 | 2024年7月30日 |
---|---|
0.3.0 | 2024年7月30日 |
0.2.0 | 2024年6月5日 |
3 在 #forecasting
每月257次下载
86KB
2K SLoC
异常检测。
此包提供了时间序列异常检测的实现,即确定一个时间序列是否在组中与其他时间序列表现不同的问题。(这与异常检测不同,异常检测旨在确定一个或多个样本是否在时间序列中看起来与众不同)。
计划实现两种方法
- DBSCAN:已实现
- 中位数绝对偏差(MAD):尚未实现(见 GitHub问题)
示例
use augurs_outlier::{OutlierDetector, DBSCANDetector};
// Each slice inside `data` is a time series.
// The third one behaves differently at indexes 2 and 3.
let data: &[&[f64]] = &[
&[1.0, 2.0, 1.5, 2.3],
&[1.9, 2.2, 1.2, 2.4],
&[1.5, 2.1, 6.4, 8.5],
];
let detector = DBSCANDetector::with_sensitivity(0.5)
.expect("sensitivity is between 0.0 and 1.0");
let processed = detector.preprocess(data)
.expect("input data is valid");
let outliers = detector.detect(&processed)
.expect("detection succeeds");
assert_eq!(outliers.outlying_series.len(), 1);
assert!(outliers.outlying_series.contains(&2));
assert!(outliers.series_results[2].is_outlier);
assert_eq!(outliers.series_results[2].scores, vec![0.0, 0.0, 1.0, 1.0]);
依赖关系
~6.5MB
~130K SLoC