View source: R/GetDetectorScore_GetLabels.R
GetLabels | R Documentation |
GetLabels
Calculates the start and end positions of each window that
are focused on the real anomalies. This windows can be used to know if the detected anomaly is a
true positive or not.
GetLabels(data)
data |
All dataset with training and test datasets with at least |
data
must be a data.frame with timestamp
, value
, is.anomaly
and is.real.anomaly
columns. timestamp
column can be numeric, of type POSIXct, or a
character type date convertible to POSIXct. see GetWindowsLimits
to know more
about how to get start.limit
and end.limit
columns.
Same data set with two additional columns label
and first.tp
.
first.tp
indicates for each window Which is the position of first true positive.
label
indicates for each detection if it is a TP, FP, TN or FN.
A. Lavin and S. Ahmad, “Evaluating Real-time Anomaly Detection Algorithms – the Numenta Anomaly Benchmark,” in 14th International Conference on Machine Learning and Applications (IEEE ICMLA’15), 2015.
## Generate data set.seed(100) n <- 180 x <- sample(1:100, n, replace = TRUE) x[70:90] <- sample(110:115, 21, replace = TRUE) x[25] <- 200 x[150] <- 170 df <- data.frame(timestamp = 1:n, value = x) # Add is.real.anomaly column df$is.real.anomaly <- 0 df[c(25,80,150), "is.real.anomaly"] <- 1 ## Calculate anomalies result <- CpSdEwma( data = df$value, n.train = 5, threshold = 0.01, l = 3 ) res <- cbind(df, result) # Get Window Limits data <- GetWindowsLimits(res) data[data$is.real.anomaly == 1,] # Get labels data <- GetLabels(data) data[data$is.real.anomaly == 1 | data$is.anomaly == 1,] # Plot results PlotDetections(res, print.real.anomaly = TRUE, print.time.window = TRUE)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.