| |||||||||

| |||||||||

| |||||||||

Description | |||||||||

Clustering and grouping algorithms that are graph-invariant and require no user intervention. | |||||||||

Synopsis | |||||||||

| |||||||||

Clustering Algorithms | |||||||||

Non-deterministic algorithms | |||||||||

The Chinese Whispering Algorithm. This is an adaptation of the algorithm described in: Biemann, C. (2006): Chinese Whispers - an Efficient Graph Clustering Algorithm and its Application to Natural Language Processing Problems. Proceedings of the HLT-NAACL-06 Workshops on Textgraphs-06, New York, USA http://wortschatz.uni-leipzig.de/~cbiemann/pub/2006/BiemannTextGraph06.pdf The adaptations to this algorithm are as follows: - Ignore any edge weightings that may exist, as we can't depend on them
(also, we want the algorithm to be dependent solely upon the
*structure*of the graph, not what it contains). - Increase the weighting of those nodes present in interesting structures, such as loops and root nodes. This is to try and ensure that these nodes end up in the same cluster.
Simplistically, the way it works is this: 1. Every node is assigned into its own unique cluster. 2. For each iteration, sort the nodes into each order. For each node, it joins the most popular cluster in its neighbourhood (where popularity is defined by the sum of the weightings). 3. Repeat step 2. until a fixed point is reached. Note that this algorithm is non-deterministic, and that for some graphs no fixed point may be reached (and the algorithm may oscillate between a few different graph clusterings). | |||||||||

| |||||||||

| |||||||||

| |||||||||

The actual Chinese Whispers algorithm. | |||||||||

Spatial Algorithms | |||||||||

This implements the algorithm called CLUSTER, from the paper: Bandyopadhyay, S. (2003): An automatic shape independent clustering technique. Pattern Recognition, vol. 37, pp. 33-45. Simplistically, it defines clusters as groups of nodes that are spatially located closer to each other than to nodes in other clusters. It utilises the concept of a /Relative Neighbour Graph/ [RNG] to determine the spatial structure of a set of two-dimensional data points. The adaptations to this algorithm are as follows: - Due to the limitations of the BKTree data structure, we utilise a
*fuzzy*distance function defined as the ceiling of the standard Euclidian distance. - We utilise
`toPosGraph`to get the spatial locations. As such, these locations may not be optimal, especially for smaller graphs. - The actual algorithm is applied to each connected component of the graph. The actual paper is unclear what to do in this scenario, but Graphviz may locate nodes from separate components together, despite them not being related.
The algorithm is renamed | |||||||||

| |||||||||

The renamed CLUSTER algorithm. Attempts to cluster a graph by using the spatial locations used by Graphviz. | |||||||||

Graph Collapsing | |||||||||

Collapse the It may be possible to extend this to a clustering algorithm by collapsing low density regions into high density regions. | |||||||||

| |||||||||

| |||||||||

| |||||||||

Produced by Haddock version 2.3.0 |