Class GeneralisedKMeans<T>

  • All Implemented Interfaces:
    ClusteringAlgorithm<T>

    public final class GeneralisedKMeans<T>
    extends java.lang.Object
    implements ClusteringAlgorithm<T>
    Contains the outline of the k-means algorithm, but designed for customisation.
    • Works with any type of data
    • Allows for custom distance calculations
    • Allows for custom centroid initialisation and updating
    • Constructor Summary

      Constructors 
      Constructor Description
      GeneralisedKMeans​(java.util.function.Function<java.util.Collection<T>,​java.util.List<T>> centroidInitialiser, java.util.function.Function<java.util.Collection<T>,​T> centroidUpdater, java.util.function.ToDoubleBiFunction<T,​T> distanceCalculator)
      You have to configure how distances are measured and how centroids are derived.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      java.util.List<java.util.Set<T>> cluster​(java.util.Collection<T> input)  
      • Methods inherited from class java.lang.Object

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

      • myCentroidUpdater

        private final java.util.function.Function<java.util.Collection<T>,​T> myCentroidUpdater
      • myDistanceCalculator

        private final java.util.function.ToDoubleBiFunction<T,​T> myDistanceCalculator
      • myCentroidInitialiser

        private final java.util.function.Function<java.util.Collection<T>,​java.util.List<T>> myCentroidInitialiser
    • Constructor Detail

      • GeneralisedKMeans

        public GeneralisedKMeans​(java.util.function.Function<java.util.Collection<T>,​java.util.List<T>> centroidInitialiser,
                                 java.util.function.Function<java.util.Collection<T>,​T> centroidUpdater,
                                 java.util.function.ToDoubleBiFunction<T,​T> distanceCalculator)
        You have to configure how distances are measured and how centroids are derived.
        Parameters:
        centroidInitialiser - The initialisation function should return a list of k centroids. This function determines 'K'.
        centroidUpdater - The update function should return a new centroid based on a collection of points (the set of items in a cluster).
        distanceCalculator - A function that calculates the distance between two points.
    • Method Detail

      • cluster

        public java.util.List<java.util.Set<T>> cluster​(java.util.Collection<T> input)
        Specified by:
        cluster in interface ClusteringAlgorithm<T>