Class FlexibleLOF<O>

  • Type Parameters:
    O - the type of objects handled by this algorithm
    All Implemented Interfaces:
    Algorithm, OutlierAlgorithm
    Direct Known Subclasses:
    OnlineLOF

    @Title("FlexibleLOF: Local Outlier Factor with additional options")
    @Description("Algorithm to compute density-based local outlier factors in a database based on the neighborhood size parameter \'k\'")
    @Reference(authors="Markus M. Breunig, Hans-Peter Kriegel, Raymond Ng, J\u00f6rg Sander",
               title="LOF: Identifying Density-Based Local Outliers",
               booktitle="Proc. 2nd ACM SIGMOD Int. Conf. on Management of Data (SIGMOD\'00)",
               url="https://doi.org/10.1145/342009.335388",
               bibkey="DBLP:conf/sigmod/BreunigKNS00")
    public class FlexibleLOF<O>
    extends java.lang.Object
    implements OutlierAlgorithm
    Flexible variant of the "Local Outlier Factor" algorithm.

    This implementation diverts from the original LOF publication in that it allows the user to use a different distance function for the reachability distance and neighborhood determination (although the default is to use the same value.)

    The k nearest neighbors are determined using the standard distance function, while the reference set used in reachability distance computation is configured using a separate reachability distance function.

    The original LOF parameter was called "minPts". For consistency with the name "kNN query", we chose to rename the parameter to k. Flexible LOF allows you to set the two values different, which yields the parameters -lof.krefer and -lof.kreach.

    Reference:
    Markus M. Breunig, Hans-Peter Kriegel, Raymond Ng, Jörg Sander
    LOF: Identifying Density-Based Local Outliers
    Proc. 2nd ACM SIGMOD Int. Conf. on Management of Data (SIGMOD'00)

    Since:
    0.2
    Author:
    Peer Kröger, Erich Schubert, Elke Achtert
    • Field Detail

      • LOG

        private static final Logging LOG
        The logger for this class.
      • krefer

        protected int krefer
        Number of neighbors in comparison set.
      • kreach

        protected int kreach
        Number of neighbors used for reachability distance.
      • referenceDistance

        protected Distance<? super O> referenceDistance
        Neighborhood distance function.
      • reachabilityDistance

        protected Distance<? super O> reachabilityDistance
        Reachability distance function.
    • Constructor Detail

      • FlexibleLOF

        public FlexibleLOF​(int krefer,
                           int kreach,
                           Distance<? super O> neighborhoodDistance,
                           Distance<? super O> reachabilityDistance)
        Constructor.
        Parameters:
        krefer - The number of neighbors for reference
        kreach - The number of neighbors for reachability distance
        neighborhoodDistance - the neighborhood distance function
        reachabilityDistance - the reachability distance function