Class ParkJun<O>

  • Type Parameters:
    O - Object type for KMedoids initialization
    All Implemented Interfaces:
    KMeansInitialization, KMedoidsInitialization<O>

    @Priority(-100)
    @Reference(authors="H.-S. Park, C.-H. Jun",
               title="A simple and fast algorithm for K-medoids clustering",
               booktitle="Expert Systems with Applications 36(2)",
               url="https://doi.org/10.1016/j.eswa.2008.01.039",
               bibkey="DBLP:journals/eswa/ParkJ09")
    public class ParkJun<O>
    extends java.lang.Object
    implements KMeansInitialization, KMedoidsInitialization<O>
    Initialization method proposed by Park and Jun.

    It is easy to imagine that this approach can become problematic, because it does not take the distances between medoids into account. In the worst case, it may choose k duplicates as initial centers, therefore we cannot recommend this strategy, but it is provided for completeness.

    Reference:

    H.-S. Park, C.-H. Jun
    A simple and fast algorithm for K-medoids clustering
    Expert Systems with Applications 36(2)

    Since:
    0.7.5
    Author:
    Erich Schubert
    • Nested Class Summary

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

      Fields 
      Modifier and Type Field Description
      private static elki.logging.Logging LOG
      Class logger.
    • Constructor Summary

      Constructors 
      Constructor Description
      ParkJun()
      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
    • Field Detail

      • LOG

        private static final elki.logging.Logging LOG
        Class logger.
    • Constructor Detail

      • ParkJun

        public ParkJun()
        Constructor.
    • 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
        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>
        Parameters:
        k - Parameter k
        ids - Candidate IDs.
        distQ - Distance function
        Returns:
        List of chosen means for k-means