Class FarthestSumPoints<O>

  • Type Parameters:
    O - Object type for kmedoids and kmedians
    All Implemented Interfaces:
    KMeansInitialization, KMedoidsInitialization<O>

    public class FarthestSumPoints<O>
    extends FarthestPoints<O>
    K-Means initialization by repeatedly choosing the farthest point (by the sum of distances to previous objects).

    Note: this is less random than other initializations, so running multiple times will be more likely to return the same local minima.

    Since:
    0.6.0
    Author:
    Erich Schubert
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      static class  FarthestSumPoints.Par<V>
      Parameterization class.
    • Constructor Summary

      Constructors 
      Constructor Description
      FarthestSumPoints​(elki.utilities.random.RandomFactory rnd, boolean dropfirst)
      Constructor.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      double[][] chooseInitialMeans​(elki.database.relation.Relation<? extends elki.data.NumberVector> relation, int k, elki.distance.NumberVectorDistance<?> distance)
      Choose initial means
      elki.database.ids.DBIDs chooseInitialMedoids​(int k, elki.database.ids.DBIDs ids, elki.database.query.distance.DistanceQuery<? super O> distQ)
      Choose initial means
      • Methods inherited from class java.lang.Object

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

      • FarthestSumPoints

        public FarthestSumPoints​(elki.utilities.random.RandomFactory rnd,
                                 boolean dropfirst)
        Constructor.
        Parameters:
        rnd - Random generator.
        dropfirst - Flag to discard the first vector.
    • Method Detail

      • chooseInitialMeans

        public double[][] chooseInitialMeans​(elki.database.relation.Relation<? extends elki.data.NumberVector> relation,
                                             int k,
                                             elki.distance.NumberVectorDistance<?> distance)
        Description copied from interface: KMeansInitialization
        Choose initial means
        Specified by:
        chooseInitialMeans in interface KMeansInitialization
        Overrides:
        chooseInitialMeans in class FarthestPoints<O>
        Parameters:
        relation - Relation
        k - Parameter k
        distance - Distance function
        Returns:
        List of chosen means for k-means
      • chooseInitialMedoids

        public elki.database.ids.DBIDs chooseInitialMedoids​(int k,
                                                            elki.database.ids.DBIDs ids,
                                                            elki.database.query.distance.DistanceQuery<? super O> distQ)
        Description copied from interface: KMedoidsInitialization
        Choose initial means
        Specified by:
        chooseInitialMedoids in interface KMedoidsInitialization<O>
        Overrides:
        chooseInitialMedoids in class FarthestPoints<O>
        Parameters:
        k - Parameter k
        ids - Candidate IDs.
        distQ - Distance function
        Returns:
        List of chosen means for k-means