Self-Organizing Maps

Viewed 679

I have a question on self-organizing maps:

But first, here is my approach on implementing one:

The som neurons are stored in a basic array. Each neuron consists of a vector (another array of the size of the input neurons) of double values which are initialized to a random value.

As far as I understand the algorithm, this is actually all I need to implement it.

So, for the training I choose a sample of the training data at random an calculate the BMU using the Euclidian distance of sample's values and the neuron weights.

Afterwards I update it's weights and all other neurons in it's range depending on the neighborhood function and the learning rate.

Then, I decrease the neighborhood function and the learning rate.

This is done until a fixed amount of iterations.

My question is now: How do I determine the clusters after the training? My approach so far is to present a new input vector and calculate the min Euclidian distance between it and the BMU . But this seems a little naive to me. I'm sure that I've missed something.

2 Answers
Related