#' Fast-ABOD Outlier score calculation
#'
#' \code{fast_abod} returns the Fast-ABOD (approximateABOF) Outlier score for
#' every observation in the given data_matrix. ABOD is short for Angle-Based
#' Outlier Detection.
#'
#' @seealso
#' \url{https://elki-project.github.io/releases/release0.7.5/javadoc/de/lmu/ifi/dbs/elki/algorithm/outlier/anglebased/FastABOD}
#' for ELKI documentation.
#'
#' @param data_matrix numeric Matrix containing data the outlier score is
#' calculated for. Rows are treated as observations, columns as features.
#' @param k Number. Neighbourhood-size used to calculate outlier scores.
#' @return List of outlier scores. The score at position x belongs to the
#' observation given in row x of the original data_matrix.
#' @examples
#' data_matrix <- matrix(c(1:30), nrow=10, ncol=3)
#' result <- fast_abod(data_matrix, 3)
#' for(index in c(1:10)) {
#' print(paste('Observation:', paste(data_matrix[index,], collapse=',')))
#' print(paste('Score:', result[index]))
#' }
#'
#'
#' @export
fast_abod <- function(data_matrix, k) {
database <- create_and_initialize_database(data_matrix)
parameterization <- create_list_parameterization()
k_option <- read_option_id('de/lmu/ifi/dbs/elki/algorithm/outlier/anglebased/FastABOD$Parameterizer',
'K_ID')
parameterization <- set_list_parameterization_option(parameterization,
k_option, as_java_integer(k))
algorithm <- parameterize_or_abort('de/lmu/ifi/dbs/elki/algorithm/outlier/anglebased/FastABOD', parameterization)
result <- run_outlier_algorithm(algorithm, database)
read_outlier_result_scores(result, database)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.