MultivariateAnomalies.jl
A julia package for detecting multivariate anomalies.
Keywords: Novelty detection, Anomaly Detection, Outlier Detection, Statistical Process Control, Process Monitoring
Please cite this package as: Flach, M., Gans, F., Brenning, A., Denzler, J., Reichstein, M., Rodner, E., Bathiany, S., Bodesheim, P., Guanche, Y., Sippel, S., and Mahecha, M. D. (2017): Multivariate anomaly detection for Earth observations: a comparison of algorithms and feature extraction techniques, Earth Syst. Dynam., 8, 677-696, doi:10.5194/esd-8-677-2017.
Requirements
- Julia >=
1.0
- Julia packages
Distances
,Combinatorics
,LinearAlgebra
, andLIBSVM
.
Installation
- add the package:
]add MultivariateAnomalies
Package Features
Detect anomalies in your data with easy to use high level functions or individual anomaly detection algorithms
Feature Extraction: Preprocess your data by extracting relevant features
Similarities and Dissimilarities: Compute distance matrices, kernel matrices and k-nearest neighbor objects.
Postprocessing: Postprocess your anomaly scores, by computing their quantiles or combinations of several algorithms (ensembles).
AUC: Compute the area under the curve as external evaluation metric of your scores.
Online Algorithms: Algorithms tuned for little memory allocation.
Using the Package
For a quick start it might be useful to start with the high level functions for detecting anomalies. They can be used in highly automized way.
Input Data
MultivariateAnomalies.jl assumes that observations/samples/time steps are stored along the first dimension of the data array (rows of a matrix) with the number of observations T = size(data, 1)
. Variables/attributes are stored along the last dimension N
of the data array (along the columns of a matrix) with the number of variables VAR = size(data, N)
. The implemented anomaly detection algorithms return anomaly scores indicating which observation(s) of the data are anomalous.
Authors
<img align="right" src="img/MPG_Minerva.png" alt="Minerva" width="75"/> The package was implemented by Milan Flach and Fabian Gans, Max Planck Institute for Biogeochemistry, Department Biogeochemical Integration, Research group for Empirical Inference of the Earth System, Jena.
Index
MultivariateAnomalies.EWMA
MultivariateAnomalies.EWMA!
MultivariateAnomalies.TDE
MultivariateAnomalies.get_MedianCycle
MultivariateAnomalies.get_MedianCycle!
MultivariateAnomalies.get_MedianCycles
MultivariateAnomalies.init_MedianCycle
MultivariateAnomalies.mw_AVG
MultivariateAnomalies.mw_AVG!
MultivariateAnomalies.mw_COR
MultivariateAnomalies.mw_VAR
MultivariateAnomalies.mw_VAR!
MultivariateAnomalies.sMSC
MultivariateAnomalies.Dist2Centers
MultivariateAnomalies.KDE
MultivariateAnomalies.KDE!
MultivariateAnomalies.KNFST_predict
MultivariateAnomalies.KNFST_predict!
MultivariateAnomalies.KNFST_train
MultivariateAnomalies.KNN_Delta
MultivariateAnomalies.KNN_Delta!
MultivariateAnomalies.KNN_Gamma
MultivariateAnomalies.KNN_Gamma!
MultivariateAnomalies.REC
MultivariateAnomalies.REC!
MultivariateAnomalies.SVDD_predict
MultivariateAnomalies.SVDD_train
MultivariateAnomalies.T2
MultivariateAnomalies.T2!
MultivariateAnomalies.UNIV
MultivariateAnomalies.UNIV!
MultivariateAnomalies.init_KDE
MultivariateAnomalies.init_KNFST
MultivariateAnomalies.init_KNN_Delta
MultivariateAnomalies.init_KNN_Gamma
MultivariateAnomalies.init_REC
MultivariateAnomalies.init_T2
MultivariateAnomalies.init_UNIV
MultivariateAnomalies.compute_ensemble
MultivariateAnomalies.get_quantile_scores
MultivariateAnomalies.get_quantile_scores!
MultivariateAnomalies.auc
MultivariateAnomalies.dist_matrix
MultivariateAnomalies.dist_matrix!
MultivariateAnomalies.init_dist_matrix
MultivariateAnomalies.init_knn_dists
MultivariateAnomalies.kernel_matrix
MultivariateAnomalies.kernel_matrix!
MultivariateAnomalies.knn_dists
MultivariateAnomalies.knn_dists!
MultivariateAnomalies.Euclidean_distance!
MultivariateAnomalies.KDEonline!
MultivariateAnomalies.KNNonline!
MultivariateAnomalies.REConline!
MultivariateAnomalies.SigmaOnline!