ad: anomaly detection with normal probability density functions.

ad(x, ...)

# S3 method for formula
ad(formula, data, na.action = na.omit, ...)

# S3 method for default
ad(x, y, univariate = TRUE, score = "f1", steps = 1000,
  ...)

# S3 method for ad
print(x, ...)

Arguments

x

A matrix of numeric features.

...

Optional parameters to be passed to ad.default.

formula

An object of class "formula": a symbolic description of the model to be fitted.

data

A data frame containing the features (predictors) and target.

na.action

A function specifying the action to be taken if NAs are found.

y

A vector of numeric target values, either 0 or 1, with 1 assumed to be anomalous.

univariate

Logical indicating whether the univariate pdf should be used.

score

String indicating which score to use in optimization: f1 (default) or mcc.

steps

Integer number of steps to take during epsilon optimization, default 1e3.

Value

An object of class ad:

call

The original call to ad.

univariate

Logical indicating which pdf was computed.

score

The score that was used for optimization.

epsilon

The threshold value.

train_mean

Means of features in the training set.

train_var

Variances of features in the training set. If univariate=FALSE

, holds the covariance matrix for the features.
val_score

The score obtained on the validation data set. 0 to 1 for F1 score, -1 to 1 for Matthews correlation coefficient

Details

amelie implements anomaly detection with normal probability functions and maximum likelihood estimates.

Features are assumed to be continuous, and the target is assumed to take on values of 0 (negative case, no anomaly) or 1 (positive case, anomaly).

The threshold epsilon is optimized using the either the Matthews correlation coefficient or F1 score.

Variance and covariance are computed using var and cov, where denominator n-1 is used.

Algorithm details are described in the Introduction vignette.

The package follows the anomaly detection approach in Andrew Ng's course on machine learning.

References

Machine learning course Confusion matrix Matthews correlation coefficient

Examples

x1 <- c(1,.2,3,1,1,.7,-2,-1) x2 <- c(0,.5,0,.4,0,1,-.3,-.1) x <- do.call(cbind,list(x1,x2)) y <- c(0,0,0,0,0,0,1,1) dframe <- data.frame(x,y) df_fit <- ad(y ~ x1 + x2, dframe) mat_fit <- ad(x = x, y = y)