Class ClusterEvaluator<T extends Clusterable>

  • Type Parameters:
    T - type of the clustered points
    Direct Known Subclasses:
    SumOfClusterVariances

    public abstract class ClusterEvaluator<T extends Clusterable>
    extends Object
    Base class for cluster evaluation methods.
    • Constructor Detail

      • ClusterEvaluator

        public ClusterEvaluator()
        Creates a new cluster evaluator with an EuclideanDistance as distance measure.
      • ClusterEvaluator

        public ClusterEvaluator​(DistanceMeasure measure)
        Creates a new cluster evaluator with the given distance measure.
        Parameters:
        measure - the distance measure to use
    • Method Detail

      • score

        public abstract double score​(List<? extends Cluster<T>> clusters)
        Computes the evaluation score for the given list of clusters.
        Parameters:
        clusters - the clusters to evaluate
        Returns:
        the computed score
      • isBetterScore

        public boolean isBetterScore​(double score1,
                                     double score2)
        Returns whether the first evaluation score is considered to be better than the second one by this evaluator.

        Specific implementations shall override this method if the returned scores do not follow the same ordering, i.e. smaller score is better.

        Parameters:
        score1 - the first score
        score2 - the second score
        Returns:
        true if the first score is considered to be better, false otherwise
      • distance

        protected double distance​(Clusterable p1,
                                  Clusterable p2)
        Calculates the distance between two Clusterable instances with the configured DistanceMeasure.
        Parameters:
        p1 - the first clusterable
        p2 - the second clusterable
        Returns:
        the distance between the two clusterables
      • centroidOf

        protected Clusterable centroidOf​(Cluster<T> cluster)
        Computes the centroid for a cluster.
        Parameters:
        cluster - the cluster
        Returns:
        the computed centroid for the cluster, or null if the cluster does not contain any points