With the default parameters, give it 2000 iterations or so to get the idea.

A self-organizing map is a fairly simple type of neural network, used mostly as a dimensionality reduction algorithm for data visualization purposes.

You see a network of neurons trying to fit a blob of data by picking a random datapoint, then dragging the closest neuron towards it. The dragging strength and the influence on neighboring neurons decay exponentially. The network starts out as a random tangle, quickly smoothens out, then starts filling the space more densely.

You could do roughly the same thing with a string of numbered beads and a printout of a scatterplot (for a 2D to 1D reduction), by trying to place the string so it roughly covers big clusters of points on the plot. You could then represent the 2D data (x, y coordinates of a point) on a 1D number line (number on the bead closest to the particular point), and have a decent mapping for new datapoints as well.

Check out the Wikipedia article.

A self-organizing map is a fairly simple type of neural network, used mostly as a dimensionality reduction algorithm for data visualization purposes.

You see a network of neurons trying to fit a blob of data by picking a random datapoint, then dragging the closest neuron towards it. The dragging strength and the influence on neighboring neurons decay exponentially. The network starts out as a random tangle, quickly smoothens out, then starts filling the space more densely.

You could do roughly the same thing with a string of numbered beads and a printout of a scatterplot (for a 2D to 1D reduction), by trying to place the string so it roughly covers big clusters of points on the plot. You could then represent the 2D data (x, y coordinates of a point) on a 1D number line (number on the bead closest to the particular point), and have a decent mapping for new datapoints as well.

Check out the Wikipedia article.