# Self-Organizing Maps clarity

I have spent sometime reading on self organizing maps. However i am still confused around a few areas.

Broadly i understand its a visual technique to reduce high dimensional data - using artificial neural networks and is unsupervised. In terms of its purpose it is pretty much similar to Tsne(Stochastic Neighbor embedding) {Please correct or add here if i am wrong or missing something}

Steps in Self Organizing broadly ( here is where i am not very confident ), please help correct/add :

1. Initialize the weights of each node
2. Choose a random input vector or data point from the train data
3. Calculate best matching unit for the data point (Euclidean distance is used - distance between input vector and node is calculated)
4. Check for neighborhood around BMU , it reduces exponentially until you reach just BMU
5. Re-adjust weights of the BMU and the neighboring nodes so that it gets more similar to the input data point.

1.What exactly is the output of this algorithm ? i have gone through multiple sources which give multiple graphs . As a final output does it also have a graph like Tsne giving natural clusters ? or it has multiple graphs which can help in interpretation of data ? how exactly do we understand the graphs generated here ?

2.Also does it use something like elbow curve to give optimal number of clusters ?

## 1 Answer

Your sketch of the training procedure looks accurate.

1. That's the idea. The output is a grid, typically 2-dimensional and rectangular, where each bin contains items that are similar to one another, and where adjacent bins are more similar than bins that are further apart. I don't know of an extension of SOMs that outputs multiple maps for disambiguation like t-SNE can produce.

2. You can plug in whichever distance metric you want to find the BMU, and using an elbow curve seems like it may help produce a better map.