Class DBSCANClusterer<T extends Clusterable>

  • Type Parameters:
    T - type of the points to cluster

    public class DBSCANClusterer<T extends Clusterable>
    extends Clusterer<T>
    DBSCAN (density-based spatial clustering of applications with noise) algorithm.

    The DBSCAN algorithm forms clusters based on the idea of density connectivity, i.e. a point p is density connected to another point q, if there exists a chain of points pi, with i = 1 .. n and p1 = p and pn = q, such that each pair <pi, pi+1> is directly density-reachable. A point q is directly density-reachable from point p if it is in the ε-neighborhood of this point.

    Any point that is not density-reachable from a formed cluster is treated as noise, and will thus not be present in the result.

    The algorithm requires two parameters:

    • eps: the distance that defines the ε-neighborhood of a point
    • minPoints: the minimum number of density-connected points required to form a cluster
    See Also:
    DBSCAN (wikipedia), A Density-Based Algorithm for Discovering Clusters in Large Spatial Databases with Noise
    • Constructor Detail

      • DBSCANClusterer

        public DBSCANClusterer​(double eps,
                               int minPts)
                        throws MathIllegalArgumentException
        Creates a new instance of a DBSCANClusterer.

        The euclidean distance will be used as default distance measure.

        Parameters:
        eps - maximum radius of the neighborhood to be considered
        minPts - minimum number of points needed for a cluster
        Throws:
        MathIllegalArgumentException - if eps < 0.0 or minPts < 0
      • DBSCANClusterer

        public DBSCANClusterer​(double eps,
                               int minPts,
                               DistanceMeasure measure)
                        throws MathIllegalArgumentException
        Creates a new instance of a DBSCANClusterer.
        Parameters:
        eps - maximum radius of the neighborhood to be considered
        minPts - minimum number of points needed for a cluster
        measure - the distance measure to use
        Throws:
        MathIllegalArgumentException - if eps < 0.0 or minPts < 0
    • Method Detail

      • getEps

        public double getEps()
        Returns the maximum radius of the neighborhood to be considered.
        Returns:
        maximum radius of the neighborhood
      • getMinPts

        public int getMinPts()
        Returns the minimum number of points needed for a cluster.
        Returns:
        minimum number of points needed for a cluster