I have a dataset {x_i} which form 3-10 clusters. Is there any analytical function of {x_i} that I may use to estimate the number of clusters in the dataset?

The fact that there might be 3-10 clusters is actually the domain knowledge I have for my problem.

  • 2
    $\begingroup$ You need to provide more information on your dataset to get a reasonable response. Also, when you talk about 3-10 clusters, is this the result of, say, eye-balling a simple plot of the data? $\endgroup$
    – chl
    Jul 26, 2012 at 20:15
  • $\begingroup$ If the question is how many clusters are there, you may want to read this question & @chl's answer. $\endgroup$ Jul 27, 2012 at 3:55
  • $\begingroup$ @calbear You can edit your posts if you are logged in; your seem to have lost your temporary session, thus you can't do it any more. Please consider making an account here, then we will be able to merge your new and temporary accounts and make you reclaim this post. $\endgroup$
    – user88
    Jul 27, 2012 at 8:19

2 Answers 2


How to determine the number of clusters in the clustering algorithm is a very well-studied problem, but as far as I know there is no gold standard. It might be wasteful for me to introduce the whole topic as an answer here; you may refer to Chapter 3 of the following slide. Also see references therein.


The most obvious way would be to run a cluster analysis algorithm and see how many clusters it finds. The only problem is that with some popular methods such as k-means and hierarchical clustering you run into a catch-22, as they need to know the number of clusters to extract beforehand. There have various methods been proposed to find the appropriate parameters for these methods.

Other methods such as DBSCAN do not have this parameter, so they will actually tell you how many clusters they found.


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.