I'm looking for a fast clustering method to cluster a large kind of datas to a unknown count of clusters.

I know about the PAM-Algorithm. But it's only efficient for low datasets.

Is there a alternative Algorithm? (And maybe a implementation in C or Java?)


With "parameter-free" i would said that i dont define the number of clusters or the distance between them. In time i only want to cluster time-stamps with the simple L1-Distance(maybe datasets between 1.000 and 5.000 datas). But maybe i want to be cluster datas in NxM (I'm not sure).


  • $\begingroup$ By non parameteric do you mean that the clustering algorithm does not assume a distribution? or that the algorithm does not have parameters? Also, please provide some additional info about the amount of data you have and how you think you would like to compare the data instances. $\endgroup$
    – Bitwise
    Oct 9, 2012 at 15:59
  • $\begingroup$ hey, thanks for the answers :) i updated my first post with more details $\endgroup$
    – destiny
    Oct 9, 2012 at 17:40
  • $\begingroup$ What does 'cluster data in NxM' mean? $\endgroup$
    – micans
    Oct 10, 2012 at 11:00
  • $\begingroup$ @micans its the R^2 ;) $\endgroup$
    – destiny
    Oct 10, 2012 at 12:28
  • $\begingroup$ I do not know what that means. Could you try to be less terse / more verbose? $\endgroup$
    – micans
    Oct 10, 2012 at 12:43

2 Answers 2


If you can recast your data as a network, then mcl clustering could work - it can handle millions of nodes. It has just one parameter that affects the granularity of the resulting clustering: it is possible to find clusterings at different levels of granularity, but not to specify the number of clusters. Disclaimer: I wrote it. It is used a lot in the field of bioinformatics.

High dimensional data can be cast to a network by using a set intersect similarity such as tanimoto similarity, or by a correlation coefficient (which is a type of similarity) such as Pearson's or Spearman's. Most network clustering algorithms expect such a similarity rather than a distance.


What did you try so far? DBSCAN has two parameters that can usually be set by a domain expert. OPTICS only has one of them, which is roughly a "minimum cluster size". And there must be 1000 other clustering algorithms.

Usually, algorithms that claim to be "parameter free" either just lie to you (parameters are hidden in form of distance function, data normalization, preprocessing ...) or just don't work that well. Sometimes they just don't offer you choice to get the label "parameter free".

Clustering is exploration. You can't explore if it's a single-shot thing. You will need multiple runs to really learn something new about your data. A single-shot approach is overfitted to tell you the obvious things (which you probably already know).

  • $\begingroup$ OPTICS seems quite interesting. I completely agree with the multiple runs, but want to annotate the '1000 other clustering algorithms'. The number is probably much larger still, but the fact is, only a small percentage are available as software. I think it is a reasonable litmus test to see whether anyone (especially the authors) made available a usable (not necessarily scalable) implementation. If this is not the case, the algorithm may be removed from consideration. $\endgroup$
    – micans
    Oct 10, 2012 at 10:58
  • $\begingroup$ Probably at least 100 are available in one way or another. ;-) $\endgroup$ Oct 10, 2012 at 12:19
  • $\begingroup$ There are some situations where multiple runs are not feasible: the parameters should be set only once at the beginning by a domain expert. An example of that is the online clustering of a continuous data-stream where each data-point should be processed as soon as it is available (because of the real time constraint). $\endgroup$
    – shn
    Oct 10, 2012 at 17:39
  • $\begingroup$ Parameters may need adjusting over time, unfortunately. Which probably is why none of the online clustering algorithms is really working well. And even if you have a domain expert, you will need to have him go through 100 cycles to get good parameters and find a suitable algorithm that produces the result you are interested in, and not just something. $\endgroup$ Oct 10, 2012 at 21:03

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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