Class KMC2.Instance

  • Direct Known Subclasses:
    AFKMC2.Instance
    Enclosing class:
    KMC2

    protected static class KMC2.Instance
    extends java.lang.Object
    Abstract instance implementing the weight handling.
    Author:
    Erich Schubert
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected elki.distance.NumberVectorDistance<?> distance
      Distance function
      protected long diststat
      Count the number of distance computations.
      protected int m
      Number of sampling attempts.
      protected java.util.Random random
      Random generator
      protected elki.database.relation.Relation<? extends elki.data.NumberVector> relation
      Data relation.
      protected elki.database.datastore.WritableDoubleDataStore weights
      Weights
    • Constructor Summary

      Constructors 
      Constructor Description
      Instance​(elki.database.relation.Relation<? extends elki.data.NumberVector> relation, elki.distance.NumberVectorDistance<?> distance, int m, elki.utilities.random.RandomFactory rnd)
      Constructor.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      protected void chooseRemaining​(int k, java.util.List<elki.data.NumberVector> means, double weightsum)
      Choose remaining means, weighted by distance.
      protected double distance​(elki.data.NumberVector a, elki.database.ids.DBIDRef b)
      Compute the distance of two objects.
      protected double distance​(elki.database.ids.DBIDRef cand, java.util.List<elki.data.NumberVector> means)
      Minimum distance to the current means.
      protected elki.logging.Logging getLogger()
      Class logger.
      protected double initialWeights​(elki.data.NumberVector first)
      Initialize the weight list.
      double[][] run​(int k)
      Run k-means++ initialization for number vectors.
      protected elki.database.ids.DBIDRef sample​(double weightsum)
      Weighted sampling.
      • Methods inherited from class java.lang.Object

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

      • relation

        protected elki.database.relation.Relation<? extends elki.data.NumberVector> relation
        Data relation.
      • distance

        protected elki.distance.NumberVectorDistance<?> distance
        Distance function
      • weights

        protected elki.database.datastore.WritableDoubleDataStore weights
        Weights
      • diststat

        protected long diststat
        Count the number of distance computations.
      • m

        protected int m
        Number of sampling attempts.
      • random

        protected java.util.Random random
        Random generator
    • Constructor Detail

      • Instance

        public Instance​(elki.database.relation.Relation<? extends elki.data.NumberVector> relation,
                        elki.distance.NumberVectorDistance<?> distance,
                        int m,
                        elki.utilities.random.RandomFactory rnd)
        Constructor.
        Parameters:
        relation - Data relation to process
        distance - Distance function
        m - M parameter
        rnd - Random generator
    • Method Detail

      • initialWeights

        protected double initialWeights​(elki.data.NumberVector first)
        Initialize the weight list.
        Parameters:
        first - Added ID
        Returns:
        Weight sum
      • run

        public double[][] run​(int k)
        Run k-means++ initialization for number vectors.
        Parameters:
        k - K
        Returns:
        Vectors
      • distance

        protected double distance​(elki.data.NumberVector a,
                                  elki.database.ids.DBIDRef b)
        Compute the distance of two objects.
        Parameters:
        a - First object
        b - Second object
        Returns:
        Distance
      • chooseRemaining

        protected void chooseRemaining​(int k,
                                       java.util.List<elki.data.NumberVector> means,
                                       double weightsum)
        Choose remaining means, weighted by distance.
        Parameters:
        k - Number of means to choose
        means - Means storage
        weightsum - Sum of weights
      • sample

        protected elki.database.ids.DBIDRef sample​(double weightsum)
        Weighted sampling.
        Parameters:
        weightsum - Total weight sum.
        Returns:
        Sampled object
      • distance

        protected double distance​(elki.database.ids.DBIDRef cand,
                                  java.util.List<elki.data.NumberVector> means)
        Minimum distance to the current means.
        Parameters:
        cand - Candidate
        means - Current means
        Returns:
        Minimum distance
      • getLogger

        protected elki.logging.Logging getLogger()
        Class logger.
        Returns:
        Logger