Clustering Library (ClusteringLib)


HierarchicalKmeans
to cluster data using Hierarchical K-means
(Kohei Arai, Ali Ridho Barakbah, "Hierarchical K-means: an algorithm for centroids initialization for K-means", Reports of the Faculty of Science and Engineering, Saga University, Japan, Vol. 36, No. 1, 2007)



FUNCTIONS

int[] - HierarchicalKmeans(int[][] data, int k)
int[] - HierarchicalKmeans(double[][] data, int k)
int[] - HierarchicalKmeans(String algorithm, int[][] data, int k)
int[] - HierarchicalKmeans(String algorithm, double[][] data, int k)
int[] - HierarchicalKmeans(int[][] data, int k, int nkmeans)
int[] - HierarchicalKmeans(double[][] data, int k, int nkmeans)
int[] - HierarchicalKmeans(String algorithm, int[][] data, int k, int nkmeans)
int[] - HierarchicalKmeans(String algorithm, double[][] data, int k, int nkmeans)


Note:
Algorithm can be singlekmeans, centroidkmeans, completekmeans, or averagekmeans.



EXAMPLES

Example VectorLib vlib=new VectorLib();
ClusteringLib clib=new ClusteringLib();
int[][] data={{20, 30}, {30, 20}, {30, 30}, {70, 70}, {80, 80}};

// Hierarchical K-Means using Centroid Linkage with 10 times K-means iteration
int[] clusters=clib.HierarchicalKmeans(data, 2);

vlib.view("Clusters", clusters);
Output clusters =
0      0      0      1      1


Example VectorLib vlib=new VectorLib();
ClusteringLib clib=new ClusteringLib();
int[][] data={{20, 30}, {30, 20}, {30, 30}, {70, 70}, {80, 80}};

// Hierarchical K-Means using Average Linkage with 10 times K-means iteration
int[] clusters=clib.HierarchicalKmeans("averagekmeans", data, 2);

vlib.view("Clusters", clusters);
Output clusters =
0      0      0      1      1


Example VectorLib vlib=new VectorLib();
ClusteringLib clib=new ClusteringLib();
int[][] data={{20, 30}, {30, 20}, {30, 30}, {70, 70}, {80, 80}};

// Hierarchical K-Means using Centroid Linkage with 5 times K-means iteration
int[] clusters=clib.HierarchicalKmeans(data, 2, 5);

vlib.view("Clusters", clusters);
Output clusters =
0      0      0      1      1


Example VectorLib vlib=new VectorLib();
ClusteringLib clib=new ClusteringLib();
int[][] data={{20, 30}, {30, 20}, {30, 30}, {70, 70}, {80, 80}};

// Hierarchical K-Means using Single Linkage with 5 times K-means iteration
int[] clusters=clib.HierarchicalKmeans("singlekmeans", data, 2, 5);

vlib.view("Clusters", clusters);
Output clusters =
0      0      0      1      1