Class ClusterEvaluator<T extends Clusterable>

java.lang.Object
org.hipparchus.clustering.evaluation.ClusterEvaluator<T>
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 Details

    • 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 Details

    • 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