 The goal of SOM is to find prototype vectors that represent the input vectors and realize a continuous mapping from the highdimensional input space to a grid of nodes.
 The cluster is represented by a node with an associated weight vector.
 A similarity measure is computed to determine the matching nodes of input vectors. Along with those of neighboring nodes, the weightvectors of matching nodes are updated by the input vectors which are different from Kmeans.
 By iterative training, the model vectors learn to represent the probability distribution of the data in an orderly fashion.
 When the training is complete, clusters identified by mapping all data points to the output neurons and similar clusters are placed near each other.
 Please be attention that a random initialization of the weight vectors may result in instability of the clustering results.
