So as I understand it SOM is primarily a visualization tool and clustering is a logical next step after you construct a SOM from data. Typically, the clustering is subjective in that after looking at your SOM you can 'see' N clusters and then from there you would go on to cluster (k means, hierarchical etc.) the SOM nodes with this N as your parameter. Is there a nonsubjective (maybe nonparametric?) way to cluster the SOM nodes (i.e. without first looking at the SOM to determine the number of distinct clusters)? Thanks


2 Answers 2


To answer your question, yes there are. There are numerical ways to determine the best cluster form. However, it is subjective which one you use.

I do not think you are still looking for this 5 years after date but this can hopefully help people in the future.

If you have any question on clustering, see @Ben 's elaborate answer in how to determine optimal cluster

Here he discusses 8 ways to determine the number of clusters:

  1. look for a bend in the WSS elbow plot (I am currently using this, because it's easy, however, difficult to automate)

  2. Partitioning around mediods with the pamk function of fmc in R

  3. Calinsky criterion (I am not a fan, don't understand the background that well)

  4. Determine the optimal model and number of clusters according to the Bayesian Information Criterion for expectation-maximization. This is nice, maybe the closest you will get to feeling it is not subjective, because it gives an 'optimum'.

  5. Affinity propagation (AP) clustering

  6. Gap Statistic for Estimating the Number of Clusters

  7. clustergrams to visualize cluster assignment, see http://www.r-statistics.com/2010/06/clustergram-visualization-and-diagnostics-for-cluster-analysis-r-code/

  8. The NbClust package

Ben explains each one with examples with nice plots.

  • $\begingroup$ Welcome to the site, @Piet93. Can you provide a synopsis of the information at the link so future readers can determine if it's something they want to pursue & in case it goes dead? $\endgroup$ Sep 29, 2016 at 14:30
  • $\begingroup$ I'll give it a try! $\endgroup$
    – Piet93
    Sep 30, 2016 at 7:22

If you don't know a priori the number of clusters, I don't think SOM will be of much help. However, you can take a look at some SOM variants, like LARFSOM, which is a SOM that inserts/removes nodes on the fly - and it was conceived by my graduate advisor :) The number of nodes in the end is expected to be the correct number of clusters in the dataset.


Your Answer

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

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