edu.uci.ics.jung.algorithms.util
Class KMeansClusterer<T>

java.lang.Object
  extended by edu.uci.ics.jung.algorithms.util.KMeansClusterer<T>

public class KMeansClusterer<T>
extends Object

Groups items into a specified number of clusters, based on their proximity in d-dimensional space, using the k-means algorithm.

Author:
Joshua O'Madadhain

Nested Class Summary
static class KMeansClusterer.NotEnoughClustersException
          An exception that indicates that the specified data points cannot be clustered into the number of clusters requested by the user.
 
Field Summary
protected  double convergence_threshold
           
protected  int max_iterations
           
protected  RandomEngine rand
           
 
Constructor Summary
KMeansClusterer()
          Creates an instance with max iterations of 100 and convergence threshold of 0.001.
KMeansClusterer(int max_iterations, double convergence_threshold)
          Creates an instance whose termination conditions are set according to the parameters.
 
Method Summary
protected  Map<double[],Map<T,double[]>> assignToClusters(Map<T,double[]> object_locations, Set<double[]> centroids)
          Assigns each object to the cluster whose centroid is closest to the object.
 Collection<Map<T,double[]>> cluster(Map<T,double[]> object_locations, int num_clusters)
          Returns a Collection of clusters, where each cluster is represented as a Map of Objects to locations in d-dimensional space.
 double getConvergenceThreshold()
           
 int getMaxIterations()
           
 void setConvergenceThreshold(double convergence_threshold)
           
 void setMaxIterations(int max_iterations)
           
 void setSeed(int random_seed)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

max_iterations

protected int max_iterations

convergence_threshold

protected double convergence_threshold

rand

protected RandomEngine rand
Constructor Detail

KMeansClusterer

public KMeansClusterer(int max_iterations,
                       double convergence_threshold)
Creates an instance whose termination conditions are set according to the parameters. Calls to cluster will terminate when either of the two following conditions is true:


KMeansClusterer

public KMeansClusterer()
Creates an instance with max iterations of 100 and convergence threshold of 0.001.

Method Detail

getMaxIterations

public int getMaxIterations()

setMaxIterations

public void setMaxIterations(int max_iterations)

getConvergenceThreshold

public double getConvergenceThreshold()

setConvergenceThreshold

public void setConvergenceThreshold(double convergence_threshold)

cluster

public Collection<Map<T,double[]>> cluster(Map<T,double[]> object_locations,
                                           int num_clusters)
Returns a Collection of clusters, where each cluster is represented as a Map of Objects to locations in d-dimensional space.

Parameters:
object_locations - a map of the Objects to cluster, to double arrays that specify their locations in d-dimensional space.
num_clusters - the number of clusters to create
Throws:
KMeansClusterer.NotEnoughClustersException

assignToClusters

protected Map<double[],Map<T,double[]>> assignToClusters(Map<T,double[]> object_locations,
                                                         Set<double[]> centroids)
Assigns each object to the cluster whose centroid is closest to the object.

Parameters:
object_locations - a map of objects to locations
centroids - the centroids of the clusters to be formed
Returns:
a map of objects to assigned clusters

setSeed

public void setSeed(int random_seed)


Copyright © 2008 null. All Rights Reserved.