1

I have recently come across Self Organizing Maps and I have the following queries:

1) How is the number of neurons related to the number of units (clusters)? 2) How can I extract the elements from a particular unit?

N01
  • 39
  • 5

3 Answers3

1

How is the number of neurons related to the number of units?

These are the same. In SOM a neuron is referred to as a unit. A unit that wins a particular input vector is referred to as its Best Matching Unit (BMU). During the learning process, the neurons/units compete to win the input vectors.

How can I extract the elements from a particular unit?

After training SOM, each unit ends with the input vectors it won. Hence, you can have a dictionary, with each units coordinate as the key while the input vectors won being members. See how it is done here MiniSom, where the method win_map(self, data) can extract the dictionary from a trained SOM.

Gathide
  • 899
  • 9
  • 19
0

You can define a unit as a cluster. It is very similar to k-means (if you know). Each unit is a cluster (by ignoring custom alternatives). And for each unit find the most similar instances. They are the cluster members for that unit. You can infer my SOM implementation, if you know Python. https://github.com/erogol/RSOM

erogol
  • 13,156
  • 33
  • 101
  • 155
0

In principle, the SOM is a prototype-based method where each neuron is related to a weight vector. This weight vector acts analogous to a centroid in the original k-means algorithm. The main difference is that neurons in the SOM are inter-connected through a matrix structure. In a simple interpretation, each node of the matrix corresponds to its own cluster, since it represents many data points. However, in practice, regions of the data space containd clouds of points that are usually represented by more than one neuron, which in conjunction form the so-called "super" cluster. A common phase, after the SOM converges is to group the SOM units into super clusters, which can be done based on the distances between neurons using a clustering algorithm such as k-means or hirearchical clustering. The output will be the groups of neurons, i.e., the super clusters that identify points belonging to the same groups.

Here you can find a very useful tutorial on how to generate super clusters using the SOM in the R.

https://cran.r-project.org/web/packages/SOMbrero/vignettes/doc-numericSOM.html

user11924
  • 153
  • 7