Class SphericalKMeans.Instance

    • Constructor Summary

      Constructors 
      Constructor Description
      Instance​(elki.database.relation.Relation<? extends elki.data.NumberVector> relation, double[][] means)
      Constructor.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      protected int assignToNearestCluster()
      Assign each object to the nearest cluster.
      protected double distance​(double[] x, double[] y)
      Compute the squared distance (and count the distance computations).
      protected double distance​(elki.data.NumberVector x, double[] y)
      Compute the squared distance (and count the distance computations).
      protected double distance​(elki.data.NumberVector x, elki.data.NumberVector y)
      Compute the squared distance (and count the distance computations).
      protected elki.logging.Logging getLogger()
      Get the class logger.
      protected void initialSeparation​(double[][] ccsim)
      Initial separation of means.
      int iterate​(int iteration)
      Main loop function.
      protected static double[][] means​(java.util.List<? extends elki.database.ids.DBIDs> clusters, double[][] means, elki.database.relation.Relation<? extends elki.data.NumberVector> relation)
      Returns the mean vectors of the given clusters in the given database.
      protected void meansFromSums​(double[][] dst, double[][] sums, double[][] prev)
      Compute means from cluster sums by adding and normalizing.
      protected void movedSimilarity​(double[][] means, double[][] newmeans, double[] sims)
      Similarity to previous locations.
      protected void recomputeVariance​(elki.database.relation.Relation<? extends elki.data.NumberVector> relation)
      Recompute the cluster variances.
      protected double similarity​(double[] vec1, double[] vec2)
      Compute the similarity of two objects (and count this operation).
      protected double similarity​(elki.data.NumberVector vec1, double[] vec2)
      Compute the similarity of two objects (and count this operation).
      protected double sqrtdistance​(elki.data.NumberVector x, double[] y)
      Compute the distance (and count the distance computations).
      protected double sqrtdistance​(elki.data.NumberVector x, elki.data.NumberVector y)
      Compute the distance (and count the distance computations).
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • Instance

        public Instance​(elki.database.relation.Relation<? extends elki.data.NumberVector> relation,
                        double[][] means)
        Constructor.
        Parameters:
        relation - Data relation
        means - Initial cluster means
    • Method Detail

      • iterate

        public int iterate​(int iteration)
        Description copied from class: AbstractKMeans.Instance
        Main loop function.
        Specified by:
        iterate in class AbstractKMeans.Instance
        Parameters:
        iteration - Iteration number (beginning at 1)
        Returns:
        Number of reassigned points
      • similarity

        protected double similarity​(elki.data.NumberVector vec1,
                                    double[] vec2)
        Compute the similarity of two objects (and count this operation).
        Parameters:
        vec1 - First vector
        vec2 - Second vector
        Returns:
        Similarity (dot product)
      • similarity

        protected double similarity​(double[] vec1,
                                    double[] vec2)
        Compute the similarity of two objects (and count this operation).
        Parameters:
        vec1 - First vector
        vec2 - Second vector
        Returns:
        Similarity (dot product)
      • distance

        protected double distance​(double[] x,
                                  double[] y)
        Description copied from class: AbstractKMeans.Instance
        Compute the squared distance (and count the distance computations).
        Overrides:
        distance in class AbstractKMeans.Instance
        Parameters:
        x - First object
        y - Second object
        Returns:
        Distance
      • distance

        protected double distance​(elki.data.NumberVector x,
                                  double[] y)
        Description copied from class: AbstractKMeans.Instance
        Compute the squared distance (and count the distance computations).
        Overrides:
        distance in class AbstractKMeans.Instance
        Parameters:
        x - First object
        y - Second object
        Returns:
        Distance
      • distance

        protected double distance​(elki.data.NumberVector x,
                                  elki.data.NumberVector y)
        Description copied from class: AbstractKMeans.Instance
        Compute the squared distance (and count the distance computations).
        Overrides:
        distance in class AbstractKMeans.Instance
        Parameters:
        x - First object
        y - Second object
        Returns:
        Distance
      • sqrtdistance

        protected double sqrtdistance​(elki.data.NumberVector x,
                                      double[] y)
        Description copied from class: AbstractKMeans.Instance
        Compute the distance (and count the distance computations). If the distance is squared, also compute the square root.
        Overrides:
        sqrtdistance in class AbstractKMeans.Instance
        Parameters:
        x - First object
        y - Second object
        Returns:
        Distance
      • sqrtdistance

        protected double sqrtdistance​(elki.data.NumberVector x,
                                      elki.data.NumberVector y)
        Description copied from class: AbstractKMeans.Instance
        Compute the distance (and count the distance computations). If the distance is squared, also compute the square root.
        Overrides:
        sqrtdistance in class AbstractKMeans.Instance
        Parameters:
        x - First object
        y - Second object
        Returns:
        Distance
      • initialSeparation

        protected void initialSeparation​(double[][] ccsim)
        Initial separation of means. Used by Elkan and Hamerly.
        Parameters:
        ccsim - Output square root of pairwise separation
      • movedSimilarity

        protected void movedSimilarity​(double[][] means,
                                       double[][] newmeans,
                                       double[] sims)
        Similarity to previous locations.

        Used by Hamerly, (Simplified)Elkan.

        Parameters:
        means - Old means
        newmeans - New means
        sims - Similarities moved (output)
      • meansFromSums

        protected void meansFromSums​(double[][] dst,
                                     double[][] sums,
                                     double[][] prev)
        Compute means from cluster sums by adding and normalizing.
        Overrides:
        meansFromSums in class AbstractKMeans.Instance
        Parameters:
        dst - Output means
        sums - Input sums
        prev - Previous means (to handle empty clusters)
      • recomputeVariance

        protected void recomputeVariance​(elki.database.relation.Relation<? extends elki.data.NumberVector> relation)
        Description copied from class: AbstractKMeans.Instance
        Recompute the cluster variances.
        Overrides:
        recomputeVariance in class AbstractKMeans.Instance
        Parameters:
        relation - Data relation
      • means

        protected static double[][] means​(java.util.List<? extends elki.database.ids.DBIDs> clusters,
                                          double[][] means,
                                          elki.database.relation.Relation<? extends elki.data.NumberVector> relation)
        Returns the mean vectors of the given clusters in the given database.
        Parameters:
        clusters - the clusters to compute the means
        means - the recent means
        relation - the database containing the vectors
        Returns:
        the mean vectors of the given clusters in the given database