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.
You can use self-organizing maps 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.
takes a row vector of dimension sizes and also a number of training steps for initial
covering, an initial neighborhood size, a layer topology function, and a neuron distance
function, and returns a self-organizing map.
selfOrgMap = selforgmap(
Use Self-Organizing Map to Cluster Data
This example shows how to use a self-organizing map 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);
dimensions — Dimension sizes
[8 8] (default) | row vector
Dimension sizes, specified as a row vector.
coverSteps — Initial covering steps
100 (default) | scalar
Number of training steps for initial covering of the input space, specified as a scalar.
initNeighbor — Initial neighborhood size
3 (default) | scalar
Initial neighborhood size, specified as a scalar.
topologyFcn — Topology function
'hextop' (default) |
Layer topology function, specified as a topology function.
distanceFcn — Distance function
'linkdist' (default) |
Neuron distance function, specified as a distance function.
selfOrgMap — Self-organizing map
Self-organizing map, returned as a network object.