### Biclustering¶

• Simulaneously cluster the rows & columns of a matrix into "biclusters". Each defines a submatrix with some desired properties.
• Common bicluster definitions include:
• constant values
• unusually high/low values
• low-variance submatrices
• correlated rows/columns

### Spectral Co-Clustering¶

• Finds biclusters with values higher than those in corresponding other rows & columns.
• Each row & column belongs to only one bicluster.
• Arranging the rows & columns create contiguous partitions reveals the high values along the diagonal.
• Algorithm treats input data as a bipartite graph (rows & cols represent two sets of vertices; each entry is an edge between a row & column. It approximates a normalized cut of the graph to find subgraphs.

### Example¶

• uses make_biclusters to build a matrix of small values, then implant large-valued biclusters.
• The rows & columns are shuffled & passed to Spectral CoClustering algorithm.
• Rearranging the shuffled matrix should reveal the contiguous biclusters.

### Spectral BiClustering¶

• Assumes input data has a hidden checkerboard structure.
• Partitions the rows & columns so that a corresponding blockwise-constant checkerboard matrix is a good approximation of the original.

### Example Spectral Biclustering¶

• Data is generated using make_checkerboard, then shuffled and passed to the Biclustering algorithm. The rows & columns are then rearranged to show the discovered biclusters.