

PREV CLASS NEXT CLASS  FRAMES NO FRAMES  
SUMMARY: NESTED  FIELD  CONSTR  METHOD  DETAIL: FIELD  CONSTR  METHOD 
java.lang.Object edu.uci.ics.jung.algorithms.cluster.VoltageClusterer<V,E>
public class VoltageClusterer<V,E>
Clusters vertices of a Graph
based on their ranks as
calculated by VoltageScorer
. This algorithm is based on,
but not identical with, the method described in the paper below.
The primary difference is that Wu and Huberman assume a priori that the clusters
are of approximately the same size, and therefore use a more complex
method than kmeans (which is used here) for determining cluster
membership based on cooccurrence data.
The algorithm proceeds as follows:
NOTE: Depending on how the cooccurrence data splits the data into clusters, the number of clusters returned by this algorithm may be less than the number of clusters requested. The number of clusters will never be more than the number requested, however.
VoltageScorer
,
KMeansClusterer
Nested Class Summary  

protected class 
VoltageClusterer.MapValueArrayComparator

Field Summary  

protected Graph<V,E> 
g

protected KMeansClusterer<V> 
kmc

protected int 
num_candidates

protected Random 
rand

Constructor Summary  

VoltageClusterer(Graph<V,E> g,
int num_candidates)
Creates an instance of a VoltageCluster with the specified parameters. 
Method Summary  

protected void 
addOneCandidateCluster(LinkedList<Set<V>> candidates,
Map<V,double[]> voltage_ranks)
alternative to addTwoCandidateClusters(): cluster vertices by voltages into 2 clusters. 
protected void 
addTwoCandidateClusters(LinkedList<Set<V>> candidates,
Map<V,double[]> voltage_ranks)
Do kmeans with three intervals and pick the smaller two clusters (presumed to be on the ends); this is closer to the WuHuberman method. 
protected Collection<Set<V>> 
cluster_internal(V origin,
int num_clusters)
Does the work of getCommunity and cluster . 
Collection<Set<V>> 
cluster(int num_clusters)
Clusters the vertices of g into
num_clusters clusters, based on their connectivity. 
Collection<Set<V>> 
getCommunity(V v)
Returns a community (cluster) centered around v . 
protected Map<V,double[]> 
getObjectCounts(Collection<Set<V>> candidates,
V seed)

protected List<V> 
getSeedCandidates(Collection<Set<V>> candidates)
Returns an array of cluster seeds, ranked in decreasing order of number of appearances in the specified collection of candidate clusters. 
protected void 
setRandomSeed(int random_seed)

Methods inherited from class java.lang.Object 

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

protected int num_candidates
protected KMeansClusterer<V> kmc
protected Random rand
protected Graph<V,E> g
Constructor Detail 

public VoltageClusterer(Graph<V,E> g, int num_candidates)
num_candidates
 the number of candidate clusters to createMethod Detail 

protected void setRandomSeed(int random_seed)
public Collection<Set<V>> getCommunity(V v)
v
.
v
 the vertex whose community we wish to discoverpublic Collection<Set<V>> cluster(int num_clusters)
g
into
num_clusters
clusters, based on their connectivity.
num_clusters
 the number of clusters to identifyprotected Collection<Set<V>> cluster_internal(V origin, int num_clusters)
getCommunity
and cluster
.
origin
 the vertex around which clustering is to be donenum_clusters
 the (maximum) number of clusters to findprotected void addTwoCandidateClusters(LinkedList<Set<V>> candidates, Map<V,double[]> voltage_ranks)
candidates
 voltage_ranks
 protected void addOneCandidateCluster(LinkedList<Set<V>> candidates, Map<V,double[]> voltage_ranks)
candidates
 voltage_ranks
 protected List<V> getSeedCandidates(Collection<Set<V>> candidates)
candidates
 protected Map<V,double[]> getObjectCounts(Collection<Set<V>> candidates, V seed)


PREV CLASS NEXT CLASS  FRAMES NO FRAMES  
SUMMARY: NESTED  FIELD  CONSTR  METHOD  DETAIL: FIELD  CONSTR  METHOD 