Spectral CoClustering (Biclustering) algorithm

CoClustering (Biclustering) algorithm simultaneously cluster row and column of a data matrix A. Row and column usually represent data instance and feature respectively. Therefore, the results of the biclustering algorithm reveal which group of features maximally response to which group of data instances.

There are so many biclustering algorithms categorized by the type of their cost functions. Each of which is described briefly in Wikipedia.

Personally I like Spectral CoClustering (Dhillon, 2001), whose matlab toolbox is implemented by Assaf Gottlieb. I add to the toolbox additional examples including how to use the toolbox, how to access to each row/column of the result matrix, visualization. I put together Assaf's toolbox with my additional codes here in CoClustering toolbox with examples. Here are some examples.

How to use the toolbox:

  1. Download the toolbox
  2. Extract the zipped file
  3. run example1.m to see all the examples. The code is self-explanatory.

Other recommended resources

  1. For a more stable results, please consider hierarchical biclustering algorithm toolbox, adapted from linkage and dendrogram function.
  2. CoClustering software by Prof. Inderjit Dhillon.
  3. Spectral CoClustering (Biclustering) Matlab implementation by Assaf Gottlieb.
  4. "Finding Large Average Submatricies in High Dimensional Data" by Shabalin et al. provides a matlab toolbox LAS biclustering.
  5. The Non-Negative Matrix Factorization Toolbox in MATLAB (NMF MATLAB Toolbox) by Yifeng Li and Alioune Ngom.
  6. MATLAB functions:
    1. clustergram on MATLAB's Bioinformatic toolbox. See also clustergram object.
    2. MATLAB biclustering page.