ReduceAnomalies It reduces the number of detected anomalies. This function is designed to reduce the number of false positives keeping only the first detection of all those that are close to each other. This proximity distance is defined by a window
perfect.score: Perfect detector score; one that outputs all true positives and no false positives. See GetNullAndPerfectScores.
null.score: Perfect detector score; one that outputs all true positives and no false positives. See GetNullAndPerfectScores.
Returns
Normalized score.
Examples
## Generate dataset.seed(100)n <-180x <- sample(1:100, n, replace =TRUE)x[70:90]<- sample(110:115,21, replace =TRUE)x[25]<-200x[150]<-170df <- data.frame(timestamp =1:n, value = x)# Add is.real.anomaly columndf$is.real.anomaly <-0df[c(25,80,150),"is.real.anomaly"]<-1## Calculate anomaliesresult <- CpSdEwma( data = df$value, n.train =5, threshold =0.01, l =3)res <- cbind(df, result)# Get null and perfect scoresnp.scores <- GetNullAndPerfectScores(df)np.standard <- np.scores[1,]np.fp <- np.scores[2,]np.fn <- np.scores[3,]# Get detector scorescores <- GetDetectorScore(res, print =FALSE, title ="")# Normalize standard scoreNormalizeScore(scores$standard, np.standard$perfect.score, np.standard$null.score)# Normalize low_FP_rate scoreNormalizeScore(scores$low_FP_rate, np.fp$perfect.score, np.fp$null.score)# Normalize low_FN_rate scoreNormalizeScore(scores$low_FN_rate, np.fn$perfect.score, np.fn$null.score)
References
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.