Class RandomUniformGenerated

  • All Implemented Interfaces:
    KMeansInitialization

    @Priority(-101)
    @Reference(authors="R. C. Jancey",
               title="Multidimensional group analysis",
               booktitle="Australian Journal of Botany 14(1)",
               url="https://doi.org/10.1071/BT9660127",
               bibkey="doi:10.1071/BT9660127")
    public class RandomUniformGenerated
    extends AbstractKMeansInitialization
    Initialize k-means by generating random vectors (uniform, within the value range of the data set).

    This is attributed to Jancey, but who wrote little more details but "introduced into known but arbitrary positions". This class assumes this refers to uniform positions within the value domain. For a normal distributed variant, see RandomNormalGenerated.

    Warning: this tends to produce empty clusters, and is one of the least effective initialization strategies, not recommended for use.

    Reference:

    R. C. Jancey
    Multidimensional group analysis
    Australian Journal of Botany 14(1)

    Since:
    0.5.0
    Author:
    Erich Schubert
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      static class  RandomUniformGenerated.Par
      Parameterization class.
    • Constructor Summary

      Constructors 
      Constructor Description
      RandomUniformGenerated​(elki.utilities.random.RandomFactory rnd)
      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
      • Methods inherited from class java.lang.Object

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

      • RandomUniformGenerated

        public RandomUniformGenerated​(elki.utilities.random.RandomFactory rnd)
        Constructor.
        Parameters:
        rnd - Random generator.
    • 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
        Parameters:
        relation - Relation
        k - Parameter k
        distance - Distance function
        Returns:
        List of chosen means for k-means