Matlab code for the paper "Optimized data fusion for kernel K-means clustering"

Shi Yu, Leon-Charles Tranchevent, Xinhai Liu, Wolfgang Glanzel, Johan A. K. Suykens, Bart De Moor, Yves Moreau.
IEEE TRANSACTIONS ON PATTERN ANALYSIS AND MACHINE INTELLIGENCE, VOL. 34, NO. 5, MAY 2012, pp 1031-1038.

OKKC algorithm (two formulations)
To run OKKC with QCQP formulation (more preferable when the number of samples is smaller than 500 because the SIP is solved by iterations and it can be slower than the direct QCQP solution on small scale problems), execute the command as:
[Z,sdi,theta,itr] = okkc(Kmix,K, 'qcqp');
INPUT: Kmix is the cell object of centered kernel matrices, K is the number of clusters.
OUTPUT: Z is the binary cluster assignment matrix, sdi is the array of sorted eigenvalues (from large to small), theta is the kernel coefficients, itr is the number of iterations.

To run OKKC with SIP formulation (more preferable when the number of samples is larger than 500, the number of kernels is larger than 10 and the cluster number is larger than 5), execute the command as:
[Z,sdi,theta,itr] = okkc(Kmix,K, 'sip');

NAML algorithm
To run NAML, execute the command as:
[Z,theta,itr] = naml(Kmix,K,lambda);
INPUT: Kmix is the cell object of centered kernel matrices, K is the number of clusters, lambda is the regularization parameter.
OUTPUT: Z is the binary cluster assignment matrix, theta is the kernel coefficients, itr is the number of interations.

To run the algorithms based on QCQP, you need to install MOSEK.

Some relevant data sets are also mentioned in a relevant paper, which can be downloaded here.

For any problem, please send an email to Shi Yu shiyu@uchicago.edu