Package org.ddogleg.clustering.kmeans
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 TypeMethodDescriptionvoid
initialize
(PointDistance<P> distance, long randomSeed) Initializes internal data structures.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
Initializes internal data structures. Must be called first.- Parameters:
distance
- Distance function between two pointsrandomSeed
- Seed for any random number generators used internally.
-
selectSeeds
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.
-