Type: | Package |
Title: | Sparse Gaussian Markov Random Field Mixtures for Anomaly Detection |
Version: | 0.3.0 |
Description: | An implementation of sparse Gaussian Markov random field mixtures presented by Ide et al. (2016) <doi:10.1109/ICDM.2016.0119>. It provides a novel anomaly detection method for multivariate noisy sensor data. It can automatically handle multiple operational modes. And it can also compute variable-wise anomaly scores. |
License: | MIT + file LICENSE |
Encoding: | UTF-8 |
LazyData: | true |
RoxygenNote: | 6.0.1 |
Imports: | ggplot2, glasso, mvtnorm, stats, tidyr, utils, zoo |
Suggests: | dplyr, ModelMetrics, testthat, covr, knitr, rmarkdown |
VignetteBuilder: | knitr |
NeedsCompilation: | no |
Packaged: | 2018-04-16 09:00:00 UTC; kmakiyam |
Author: | Koji Makiyama [cre, aut] |
Maintainer: | Koji Makiyama <hoxo.smile@gmail.com> |
Repository: | CRAN |
Date/Publication: | 2018-04-16 09:27:39 UTC |
Compute anomaly scores
Description
Compute anomaly scores
Usage
compute_anomaly_score(obj, x, window_size = 1L, ...)
Arguments
obj |
object |
x |
data.frame to compute anomaly scores |
window_size |
integer. |
... |
additional arguments |
Value
matrix of anomaly scores
Examples
library(sGMRFmix)
set.seed(314)
train_data <- generate_train_data()
fit <- sGMRFmix(train_data, K = 7, rho = 10)
test_data <- generate_test_data()
compute_anomaly_score(fit, test_data)
Generate test data
Description
Generate test data
Usage
generate_test_data()
Generate test labels
Description
Generate test labels
Usage
generate_test_labels()
Generate train data
Description
Generate train data
Usage
generate_train_data()
Plot multivariate data
Description
Plot multivariate data
Usage
plot_multivariate_data(df, label = NULL, order_by = index(df),
guide_title = NULL, fix_scale = FALSE, point_size = 1L)
Arguments
df |
data.frame of multivariate data |
label |
data.frame of label for each variables. Or vector of label for each observation. |
order_by |
vector. An x-axis of plots. |
guide_title |
character. |
fix_scale |
logical. |
point_size |
integer. Point size. |
Value
ggplot2 object
Examples
library(sGMRFmix)
test_data <- generate_test_data()
test_label <- generate_test_labels()
plot_multivariate_data(test_data)
plot_multivariate_data(test_data, test_label)
Sparse Gaussian Markov Random Field Mixtures
Description
Sparse Gaussian Markov Random Field Mixtures
Usage
sGMRFmix(x, K, rho, kmeans = FALSE, m0 = rep(0, M), lambda0 = 1,
alpha = NULL, pi_threshold = 1/K/100, max_iter = 500, tol = 0.1,
verbose = TRUE)
Arguments
x |
data.frame. A training data. |
K |
integer. Number of mixture components. Set a large enough number because the algorithm identifies major dependency patterns from the data via the sparse mixture model. |
rho |
double. Constant that multiplies the penalty term. An optimal value should be determined together with the threshold on the anomaly score, so the performance of anomaly detection is maximized. |
kmeans |
logical. If TRUE, initialize parameters with k-means method. You should set TRUE for non-time series data. Default FALSE. |
m0 |
a numeric vector. Location parameter of Gauss-Laplace prior. Keep default if no prior information is available. Default 0. |
lambda0 |
double. Coefficient for scale parameter of Gauss-Laplace prior. Keep default if no prior information is available. Default 1. |
alpha |
double. Concentration parameter of Dirichlet prior. Keep default if no prior information is available. Default 1. |
pi_threshold |
double. Threshold to decide a number of states. If pi < pi_threshold, the states are rejected in the sense of sparse estimation. |
max_iter |
integer. Maximum number of iterations. |
tol |
double. The tolerance to declare convergence. |
verbose |
logical. |
Value
sGMRFmix object
Examples
library(sGMRFmix)
set.seed(314)
train_data <- generate_train_data()
fit <- sGMRFmix(train_data, K = 7, rho = 10)
fit