How to perform cluster analysis in a set:

  1. With the number of clusters bounded but not specified, e.g. $k\in[3,5]$
  2. With a bounded abundance of clusters (the number of elements in each of the clusters), e.g. $n_i \geq 4$

FindClusters[] allows to specify the number of clusters or leave it complitely free. I do not know how to force the number of clusters to belong to the given range.

All the more I do not know how to impose a condition on the minimal abundance of clusters, so that extremely scanty clusters do not arise.

It seams to be a quite reasonable functionality, so maybe I miss something important. I would be grateful for help.

  • $\begingroup$ You need to specify some clustering criterion for any algorithm to be able to "choose" the appropriate number of clusters. You can limit the range (e.g., between 3 and 5) but you must impose some criterion that will allow the algorithm to make 4, rather than 3, say. $\endgroup$ – David G. Stork Mar 27 '19 at 18:59
  • $\begingroup$ Sounds good. Is it about changing CriterionFunction->? If so, how to edit the function? I'm asking because I see only a selection of several built-in functions, such as "StandardDeviation" or "CalinskiHarabasz". If you meant anything else, get me out of error. Maybe you're talking about editing the algorithm hidden under Method->, such as "Agglomerate". If so, how to do it? $\endgroup$ – Druid Mar 28 '19 at 11:44
  • $\begingroup$ @DavidG.Stork Your answer to my question suggests that you are an expert in this field. Could you develop a topic, how to change the settings of the clustering function, to impose constraints on the number of clusters and their abundance? $\endgroup$ – Druid Mar 28 '19 at 12:30
  • $\begingroup$ I've worked in the field for three decades, have taught in leading academic departments and wrote the leading book in Pattern classification. I urge you to read key papers and books... the field is too deep to cast into a comment on StackExchange. $\endgroup$ – David G. Stork Mar 28 '19 at 18:55

Your Answer

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

Browse other questions tagged or ask your own question.