Class GriDBSCAN<V extends elki.data.NumberVector>

  • Type Parameters:
    V - the type of vector the algorithm is applied to
    All Implemented Interfaces:
    elki.Algorithm, ClusteringAlgorithm<Clustering<Model>>

    @Title("GriDBSCAN: Using Grid for Accelerating Density-Based Clustering")
    @Reference(authors="S. Mahran, K. Mahar",
               title="Using grid for accelerating density-based clustering",
               booktitle="8th IEEE Int. Conf. on Computer and Information Technology",
               url="https://doi.org/10.1109/CIT.2008.4594646",
               bibkey="DBLP:conf/IEEEcit/MahranM08")
    public class GriDBSCAN<V extends elki.data.NumberVector>
    extends java.lang.Object
    implements ClusteringAlgorithm<Clustering<Model>>
    Using Grid for Accelerating Density-Based Clustering.

    An accelerated DBSCAN version for numerical data and Lp-norms only, by partitioning the data set into overlapping grid cells. For best efficiency, the overlap of the grid cells must be chosen well. The authors suggest a grid width of 10 times epsilon.

    Because of partitioning the data, this version does not make use of indexes.

    Reference:

    S. Mahran, K. Mahar
    Using grid for accelerating density-based clustering
    In 8th IEEE Int. Conf. on Computer and Information Technology, 2008.

    Since:
    0.7.1
    Author:
    Erich Schubert
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      protected static class  GriDBSCAN.Instance<V extends elki.data.NumberVector>
      Instance, for a single run.
      • Nested classes/interfaces inherited from interface elki.Algorithm

        elki.Algorithm.Utils
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected elki.distance.Distance<? super V> distance
      Distance function used.
      protected double epsilon
      Holds the epsilon radius threshold.
      protected double gridwidth
      Width of the grid cells.
      private static elki.logging.Logging LOG
      The logger for this class.
      protected int minpts
      Holds the minimum cluster size.
    • Constructor Summary

      Constructors 
      Constructor Description
      GriDBSCAN​(elki.distance.Distance<? super V> distance, double epsilon, int minpts, double gridwidth)
      Constructor with parameters.
    • Field Detail

      • LOG

        private static final elki.logging.Logging LOG
        The logger for this class.
      • distance

        protected elki.distance.Distance<? super V extends elki.data.NumberVector> distance
        Distance function used.
      • epsilon

        protected double epsilon
        Holds the epsilon radius threshold.
      • minpts

        protected int minpts
        Holds the minimum cluster size.
      • gridwidth

        protected double gridwidth
        Width of the grid cells. Must be at least 2 epsilon!
    • Constructor Detail

      • GriDBSCAN

        public GriDBSCAN​(elki.distance.Distance<? super V> distance,
                         double epsilon,
                         int minpts,
                         double gridwidth)
        Constructor with parameters.
        Parameters:
        distance - Distance function
        epsilon - Epsilon value
        minpts - Minpts parameter
        gridwidth - Grid width
    • Method Detail

      • getInputTypeRestriction

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

        public Clustering<Model> run​(elki.database.relation.Relation<V> relation)
        Performs the DBSCAN algorithm on the given database.