DSC_MCOD: Micro-cluster Continuous Outlier Detector (MCOD)

View source: R/DSOutlier_MCOD.R

DSC_MCODR Documentation

Micro-cluster Continuous Outlier Detector (MCOD)

Description

Interface to the MOA implementation of the MCOD algorithm for distance-based data stream outlier detection.

Usage

DSC_MCOD(r = 0.1, t = 50, w = 1000, recheck_outliers = FALSE)

DSOutlier_MCOD(r = 0.1, t = 50, w = 1000, recheck_outliers = TRUE)

get_outlier_positions(x, ...)

recheck_outlier(x, outlier_correlated_id, ...)

clean_outliers(x, ...)

Arguments

r

Radius used to search for neighbors.

t

Minimum number of neighbors required for a point not to be an outlier.

w

Sliding window width in data points.

recheck_outliers

If TRUE, allow detected outliers to be checked again.

x

A DSC_MCOD object.

...

Further arguments (currently ignored).

outlier_correlated_id

Identifier of the outlier to check again.

Details

The algorithm detects density-based outliers. An object x is defined to be an outlier if there are less than t objects lying at distance at most r from x.

Outliers are stored and can be retrieved with get_outlier_positions() and checked again with recheck_outlier().

Note: The implementation updates the clustering when predict() is called.

Value

An object of class DSC_MCOD (subclass of stream::DSC_Micro, DSC_MOA and stream::DSC).

Functions

  • get_outlier_positions(): Returns spatial positions of all current outliers.

  • recheck_outlier(): Re-check whether the outlier identified by outlier_correlated_id is still an outlier. Returns TRUE if it is.

  • clean_outliers(): Forget detected outliers (currently not implemented).

Author(s)

Dalibor Krleža

References

Kontaki M, Gounaris A, Papadopoulos AN, Tsichlas K, and Manolopoulos Y (2016). Efficient and flexible algorithms for monitoring distance-based outliers over data streams. Information Systems, Vol. 55, pp. 37-53. \Sexpr[results=rd]{tools:::Rd_expr_doi("10.1109/ICDE.2011.5767923")}

See Also

Other DSC_MOA: DSC_BICO_MOA(), DSC_CluStream(), DSC_ClusTree(), DSC_DStream_MOA(), DSC_DenStream(), DSC_MOA(), DSC_StreamKM()

Examples

# Example 1: Clustering with MCOD
stream <- DSD_Gaussians(k = 3, d = 2, noise = 0.05)
mcod <- DSC_MCOD(r = .1, t = 3, w = 100)
update(mcod, stream, 100)
mcod

plot(mcod, stream, n = 100)

# Example 2: Predict outliers (have a class label of NA)
stream <- DSD_Gaussians(k = 3, d = 2, noise = 0.05)
mcod <- DSOutlier_MCOD(r = .1, t = 3, w = 100)
update(mcod, stream, 100)

plot(mcod, stream, n = 100)

# Retrieve detected outlier positions.
get_outlier_positions(mcod)

# Example 3: evaluate on a stream
evaluate_static(mcod, stream, n = 100, type = "micro",
  measure = c("crand", "noisePrecision", "outlierjaccard"))

streamMOA documentation built on Oct. 14, 2026, 1:06 a.m.