KMeansClustering is a free, open-source and Java based library that implements various methods of K Means Clustering.
One of the algorithms is Elkan K-Means Clustering, which uses triangle inequality to speed up assignment of points to their closest cluster.
K-Means KDTree Clustering is another implemented algorithm that speeds up the assignment of points to their closest cluster using a KD Tree.
Finally, the K-Means KD Forest Clustering method ca select assignments of points to their closest cluster using a forest of KD trees.
Requirements:
· Java