Self-organizing maps learn to cluster data based on similarity, topology, with a preference (but no guarantee) of assigning the same number of instances to each class.
Self-organizing maps are used both to cluster data and to reduce the dimensionality of data. They are inspired by the sensory and motor mappings in the mammal brain, which also appear to automatically organizing information topologically.
selforgmap(dimensions,coverSteps,initNeighbor,topologyFcn,distanceFcn) takes these arguments,
Row vector of dimension sizes (default = [8 8])
Number of training steps for initial covering of the input space (default = 100)
Initial neighborhood size (default = 3)
Layer topology function (default = 'hextop')
Neuron distance function (default = 'linkdist')
and returns a self-organizing map.
Here a self-organizing map is used to cluster a simple set of data.
x = simplecluster_dataset; net = selforgmap([8 8]); net = train(net,x); view(net) y = net(x); classes = vec2ind(y);