Interface InitializeKMeans<P>

All Known Implementing Classes:
InitializePlusPlus, InitializePlusPlus_MT, InitializeStandard

public interface InitializeKMeans<P>
Selects the initial cluster positions for k-means
  • Method Summary

    Modifier and Type Method Description
    void initialize​(PointDistance<P> distance, long randomSeed)
    Initializes internal data structures.
    InitializeKMeans<P> newInstanceThread()
    Creates a new instance which has the same configuration and can be run in parallel.
    void selectSeeds​(LArrayAccessor<P> points, int requestedSeeds, DogArray<P> selectedSeeds)
    Given the a set of points, select a set of seeds to initialize k-means from.
  • Method Details

    • initialize

      void initialize​(PointDistance<P> distance, long randomSeed)
      Initializes internal data structures. Must be called first.
      Parameters:
      distance - Distance function between two points
      randomSeed - Seed for any random number generators used internally.
    • selectSeeds

      void selectSeeds​(LArrayAccessor<P> points, int requestedSeeds, DogArray<P> selectedSeeds)

      Given the a set of points, select a set of seeds to initialize k-means from.

      • How duplicate points are handled isn't specified. It could result in two seeds having the same value or the number of selected seeds being less that the requested amount
      • If the number of points is less than the number of seeds requested it will at most select one seed for each point
      *
      Parameters:
      points - (Input) Set of points which is to be clustered.
      requestedSeeds - (Input) Number of seeds it will attempt to select. See above for exceptions.
      selectedSeeds - (Output) Storage for selected seeds. They will be copied into it.
    • newInstanceThread

      InitializeKMeans<P> newInstanceThread()
      Creates a new instance which has the same configuration and can be run in parallel. Some components can be shared as long as they are read only and thread safe.