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.EWMAMultivariateAnomalies.EWMA!MultivariateAnomalies.TDEMultivariateAnomalies.get_MedianCycleMultivariateAnomalies.get_MedianCycle!MultivariateAnomalies.get_MedianCyclesMultivariateAnomalies.init_MedianCycleMultivariateAnomalies.mw_AVGMultivariateAnomalies.mw_AVG!MultivariateAnomalies.mw_CORMultivariateAnomalies.mw_VARMultivariateAnomalies.mw_VAR!MultivariateAnomalies.sMSCMultivariateAnomalies.Dist2CentersMultivariateAnomalies.KDEMultivariateAnomalies.KDE!MultivariateAnomalies.KNFST_predictMultivariateAnomalies.KNFST_predict!MultivariateAnomalies.KNFST_trainMultivariateAnomalies.KNN_DeltaMultivariateAnomalies.KNN_Delta!MultivariateAnomalies.KNN_GammaMultivariateAnomalies.KNN_Gamma!MultivariateAnomalies.RECMultivariateAnomalies.REC!MultivariateAnomalies.SVDD_predictMultivariateAnomalies.SVDD_trainMultivariateAnomalies.T2MultivariateAnomalies.T2!MultivariateAnomalies.UNIVMultivariateAnomalies.UNIV!MultivariateAnomalies.init_KDEMultivariateAnomalies.init_KNFSTMultivariateAnomalies.init_KNN_DeltaMultivariateAnomalies.init_KNN_GammaMultivariateAnomalies.init_RECMultivariateAnomalies.init_T2MultivariateAnomalies.init_UNIVMultivariateAnomalies.compute_ensembleMultivariateAnomalies.get_quantile_scoresMultivariateAnomalies.get_quantile_scores!MultivariateAnomalies.aucMultivariateAnomalies.dist_matrixMultivariateAnomalies.dist_matrix!MultivariateAnomalies.init_dist_matrixMultivariateAnomalies.init_knn_distsMultivariateAnomalies.kernel_matrixMultivariateAnomalies.kernel_matrix!MultivariateAnomalies.knn_distsMultivariateAnomalies.knn_dists!MultivariateAnomalies.Euclidean_distance!MultivariateAnomalies.KDEonline!MultivariateAnomalies.KNNonline!MultivariateAnomalies.REConline!MultivariateAnomalies.SigmaOnline!