Class SimplifiedSilhouette

  • All Implemented Interfaces:
    elki.evaluation.Evaluator, elki.result.ResultProcessor

    public class SimplifiedSilhouette
    extends java.lang.Object
    implements elki.evaluation.Evaluator
    Compute the simplified silhouette of a data set.

    The simplified silhouette does not use pairwise distances, but distances to centroids only.

    Since:
    0.7.0
    Author:
    Stephan Baier, Erich Schubert
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      static class  SimplifiedSilhouette.Par
      Parameterization class.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private elki.distance.NumberVectorDistance<?> distance
      Distance function to use.
      private java.lang.String key
      Key for logging statistics.
      private static elki.logging.Logging LOG
      Logger for debug output.
      private NoiseHandling noiseOption
      Option for noise handling.
      private boolean penalize
      Penalize noise, if NoiseHandling.IGNORE_NOISE is set.
    • Constructor Summary

      Constructors 
      Constructor Description
      SimplifiedSilhouette​(elki.distance.NumberVectorDistance<?> distance, NoiseHandling noiseOpt, boolean penalize)
      Constructor.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      static int centroids​(elki.database.relation.Relation<? extends elki.data.NumberVector> rel, java.util.List<? extends Cluster<?>> clusters, elki.data.NumberVector[] centroids, NoiseHandling noiseOption)
      Compute centroids.
      double evaluateClustering​(elki.database.relation.Relation<? extends elki.data.NumberVector> rel, Clustering<?> c)
      Evaluate a single clustering.
      void processNewResult​(java.lang.Object result)  
      • 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
        Logger for debug output.
      • noiseOption

        private NoiseHandling noiseOption
        Option for noise handling.
      • distance

        private elki.distance.NumberVectorDistance<?> distance
        Distance function to use.
      • key

        private java.lang.String key
        Key for logging statistics.
    • Constructor Detail

      • SimplifiedSilhouette

        public SimplifiedSilhouette​(elki.distance.NumberVectorDistance<?> distance,
                                    NoiseHandling noiseOpt,
                                    boolean penalize)
        Constructor.
        Parameters:
        distance - Distance function
        noiseOpt - Flag to control noise handling
        penalize - noise, if NoiseHandling.IGNORE_NOISE is set.
    • Method Detail

      • evaluateClustering

        public double evaluateClustering​(elki.database.relation.Relation<? extends elki.data.NumberVector> rel,
                                         Clustering<?> c)
        Evaluate a single clustering.
        Parameters:
        rel - Data relation
        c - Clustering
        Returns:
        Mean simplified silhouette
      • centroids

        public static int centroids​(elki.database.relation.Relation<? extends elki.data.NumberVector> rel,
                                    java.util.List<? extends Cluster<?>> clusters,
                                    elki.data.NumberVector[] centroids,
                                    NoiseHandling noiseOption)
        Compute centroids.
        Parameters:
        rel - Data relation
        clusters - Clusters
        centroids - Output array for centroids
        Returns:
        Number of ignored noise elements.
      • processNewResult

        public void processNewResult​(java.lang.Object result)
        Specified by:
        processNewResult in interface elki.result.ResultProcessor