public class SpectralClustering extends Object
EigenCut
instance to compute a spectral
partition of a dataset. Given a single data set, it will recursively
partition that data set using a EigenCut
instance until one of two
limits: all data points are in a unique cluster, or the maximum number of
partitions have been made, as set by the number of clusters. Once all
paritions are made, neighboring paritions may be merged according to the
objective scores returned by the EigenCut
instance. If cluster(Matrix, int)
is used, the requested number of clusters,
or fewer, will be returned, otherwise the algorithm will decide on the
correct number of clusters.EigenCut
,
BaseSpectralCut
Constructor and Description |
---|
SpectralClustering(double alpha,
Generator<EigenCut> cutterGenerator)
Creates a new
SpectralClustering instance. |
Modifier and Type | Method and Description |
---|---|
Assignments |
cluster(Matrix matrix)
Returns the Cluster
Assignments of each data point in matrix . |
Assignments |
cluster(Matrix matrix,
int maxClusters,
boolean useKMeans)
Returns the Cluster for each data point in
matrix . |
public SpectralClustering(double alpha, Generator<EigenCut> cutterGenerator)
SpectralClustering
instance.public Assignments cluster(Matrix matrix)
Assignments
of each data point in matrix
. This method will determine a "good" number of clusters
algorithmiclly. This method also uses the relaxed correlation objective
function, as the k-means objective function would always keep each data
point in it's own cluster.public Assignments cluster(Matrix matrix, int maxClusters, boolean useKMeans)
matrix
. This method will return at most maxClusters
. If useKMeans
is true, the K-means objective function is used to merge
clusters, otherwise the relaxed correlation function is used.Copyright © 2012. All Rights Reserved.