Convex Clustering

ConvexClustering: a MATLAB package for convex clustering

Authors: Defeng Sun, Kim-Chuan Toh, Yancheng Yuan
Correspondence: K.-C. Toh

The software was first released in June 2021.
The software is designed to solve convex clustering problems of the following form given input data \((a_1,\ldots,a_n)\)

\min \Big\{ \sum_{i=1}^n \|x_i -a_i\|^2 + \gamma \sum_{(i,j)\in \mathcal{E}} w_{ij}\|x_i – x_j\| \;\mid\; x_i\in\mathbb{R}^d, i=1,\ldots,n\Big\}
where  \(\gamma\) is a positive regularization parameter; typically \(w_{ij} = \exp(-\phi\|a_i-a_j\|^2)\) and \(\phi\) is a positive constant; \(\mathcal{E}\) is the \(k\)-nearest neighbors graph that is constructed based on the pairwise distances \(\|a_i-a_j\|\).

Important note: this is a research software. It is not intended nor designed to be a general purpose software at the moment.

  1. D.F. Sun, K.C. Toh, and Y.C. Yuan, Convex clustering: model, theoretical guarantee and efficient algorithm, Journal of Machine Learning Research, 22(9), 2021. 
  2. Y.C. Yuan, D.F. Sun, and K.C. Toh, An efficient semismooth Newton based algorithm for convex clustering, ICML 2018.

Copyright: This version of ConvexClustering is distributed under the BSD 3-clause License.

Download here:
Please read.
  • Firstly, unpack the software.
  • Run Matlab in the directory ConvexClustering.
  • After that, to see whether you have installed ConvexClustering correctly, type:
    >> Demo