Class FastOPTICS<V extends elki.data.NumberVector>

  • Type Parameters:
    V - Input vector type
    All Implemented Interfaces:
    elki.Algorithm, OPTICSTypeAlgorithm

    @Reference(authors="J. Schneider, M. Vlachos",
               title="Fast parameterless density-based clustering via random projections",
               booktitle="Proc. 22nd ACM Int. Conf. on Information & Knowledge Management (CIKM 2013)",
               url="https://doi.org/10.1145/2505515.2505590",
               bibkey="DBLP:conf/cikm/SchneiderV13")
    public class FastOPTICS<V extends elki.data.NumberVector>
    extends java.lang.Object
    implements OPTICSTypeAlgorithm
    FastOPTICS algorithm (Fast approximation of OPTICS)

    Note that this is not FOPTICS as in "Fuzzy OPTICS"!

    Reference:

    J. Schneider, M. Vlachos
    Fast parameterless density-based clustering via random projections
    Proc. 22nd ACM Int. Conf. on Information and Knowledge Management (CIKM 2013)

    This is based on the original code provided by Johannes Schneider, with ELKIfications and optimizations by Erich Schubert.

    Since:
    0.7.0
    Author:
    Johannes Schneider, Erich Schubert
    • Nested Class Summary

      • Nested classes/interfaces inherited from interface elki.Algorithm

        elki.Algorithm.Utils
    • Field Summary

      Fields 
      Modifier and Type Field Description
      (package private) RandomProjectedNeighborsAndDensities index
      Index.
      (package private) elki.database.datastore.DoubleDataStore inverseDensities
      Inverse Densities correspond to average distances in point set of projections
      private static elki.logging.Logging LOG
      Class logger.
      (package private) int minPts
      MinPts parameter.
      (package private) elki.database.datastore.DataStore<? extends elki.database.ids.DBIDs> neighs
      neighbors of a point
      (package private) ClusterOrder order
      Result: output order of points
      (package private) elki.database.ids.ModifiableDBIDs processed
      processed points
      (package private) elki.database.datastore.WritableDoubleDataStore reachDist
      Result: reachability distances
      static double UNDEFINED_DISTANCE
      undefined value for (reachability/average) distance
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      protected void expandClusterOrder​(elki.database.ids.DBID ipt, ClusterOrder order, elki.database.query.distance.DistanceQuery<V> dq, elki.logging.progress.FiniteProgress prog)
      OPTICS algorithm for processing a point, but with different density estimates
      elki.data.type.TypeInformation[] getInputTypeRestriction()  
      int getMinPts()
      Get the minpts value used.
      ClusterOrder run​(elki.database.relation.Relation<V> relation)
      Run the algorithm.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • LOG

        private static final elki.logging.Logging LOG
        Class logger.
      • UNDEFINED_DISTANCE

        public static final double UNDEFINED_DISTANCE
        undefined value for (reachability/average) distance
        See Also:
        Constant Field Values
      • reachDist

        elki.database.datastore.WritableDoubleDataStore reachDist
        Result: reachability distances
      • processed

        elki.database.ids.ModifiableDBIDs processed
        processed points
      • neighs

        elki.database.datastore.DataStore<? extends elki.database.ids.DBIDs> neighs
        neighbors of a point
      • inverseDensities

        elki.database.datastore.DoubleDataStore inverseDensities
        Inverse Densities correspond to average distances in point set of projections
      • minPts

        int minPts
        MinPts parameter.
    • Method Detail

      • getInputTypeRestriction

        public elki.data.type.TypeInformation[] getInputTypeRestriction()
        Specified by:
        getInputTypeRestriction in interface elki.Algorithm
      • run

        public ClusterOrder run​(elki.database.relation.Relation<V> relation)
        Run the algorithm.
        Parameters:
        relation - Relation
      • expandClusterOrder

        protected void expandClusterOrder​(elki.database.ids.DBID ipt,
                                          ClusterOrder order,
                                          elki.database.query.distance.DistanceQuery<V> dq,
                                          elki.logging.progress.FiniteProgress prog)
        OPTICS algorithm for processing a point, but with different density estimates
        Parameters:
        ipt - Point
        order - Cluster order (output)
        dq - Distance query
        prog - Progress for logging.