I have a similarity matrix M - the value M(i,j) indicates the similarity between two elements i and j.

I want to approximate that matrix using a Gaussian Mixture model or I want to cluster that matrix into set of K clusters.

How can I do it? I am not sure about the input of the clustering algorithm.


Both K-means and GMM need to be able to compute means (centroids), therefore they cannot operate on a given similarit matrix - you need to define a function to compute a mean, and a distance function from the mean. A similarity matrix is not enough (actually, it's useless) for these algorithms.

You can, however,

  • use a clustering algorithm that can work with arbitrary distances / similarities, such as hierarchical linkage clustering, DBSCAN, OPTICS, PAM/k-Medoids
  • use Multidimensional Scaling to approximate your data in an Euclidean vector space, then run other clustering algorithms on the projected data. Interpreting these clusters will be a lot harder though.

You may want to look into advanced clustering frameworks such as ELKI that offer a wide variety of methods. Maybe e.g. subspace clustering or correlation clustering is more appropriate for your problem.

  • $\begingroup$ Thank you very much for your answer. I have a similarity matrix, how can I get some underlining structure of it? / features from it? may be spectral clustring, etc.?? $\endgroup$
    – user570593
    Mar 3 '14 at 15:59
  • 1
    $\begingroup$ That is the same question again... don't expect clustering to do magic. You will need to experiment, analyze, and try again. $\endgroup$ Mar 3 '14 at 17:35

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.