Spectral CoClustering (Biclustering) Matlab implementation

The following Matlab m-files implement a bipartite spectral graph partitioning algorithm of (Dhillon, 2001).
The algorithm was designed to cocluster (bicluster) sparse binary co-occurrences of documents and words.
We augmented the algorithm to provide better images by applying single linkage hierarchical algorithm for each produced bicluster individually.
We then sort each bicluster according to the hierarchical clustering ordering, which gives cleaner look to less homogenous clusters.

Dhillon, I.S. (2001) Co-clustering documents and words using bipartite spectral graph partitioning, in proceedings of the acm sigkdd conference, 269-274

The software comes with no guarantees.

Example:

Input: example data matrix

Example output (k=6 clusters, using the PlotCoClustering.m wrapper to display only cluster numbers):




The following m-files are required (returning visitors - please pay attention to the modified function output):

SpectralCoClustering.m (main function)
ArrangeData2Clusters.m (called from SpectralCoClustering.m)

Tips & clarifications:

For questions, please contact Assaf Gottlieb

Free counter and web stats