Kohonen's Self-Organizing Maps are a crude form of multidimensional scaling.

`SOM(data, grid = somgrid(), rlen = 10000, alpha, radii, init)`

data

a matrix or data frame of observations, scaled so that Euclidean distance is appropriate.

grid

A grid for the representatives: see `somgrid`

.

rlen

the number of updates: used only in the defaults for `alpha`

and `radii`

.

alpha

the amount of change: one update is done for each element of `alpha`

.
Default is to decline linearly from 0.05 to 0 over `rlen`

updates.

radii

the radii of the neighbourhood to be used for each update: must be the
same length as `alpha`

. Default is to decline linearly from 4 to 1
over `rlen`

updates.

init

the initial representatives. If missing, chosen (without replacement)
randomly from `data`

.

An object of class `"SOM"`

with components

the grid, an object of class `"somgrid"`

.

a matrix of representatives.

`alpha`

and `radii`

can also be lists, in which case each component is
used in turn, allowing two- or more phase training.

Kohonen, T. (1995) *Self-Organizing Maps.* Springer-Verlag

Kohonen, T., Hynninen, J., Kangas, J. and Laaksonen, J. (1996)
*SOM PAK: The self-organizing map program package.*
Laboratory of Computer and Information Science, Helsinki University
of Technology, Technical Report A31.

Ripley, B. D. (1996)
*Pattern Recognition and Neural Networks.* Cambridge.

Venables, W. N. and Ripley, B. D. (2002)
*Modern Applied Statistics with S.* Fourth edition. Springer.

# NOT RUN { require(graphics) data(crabs, package = "MASS") lcrabs <- log(crabs[, 4:8]) crabs.grp <- factor(c("B", "b", "O", "o")[rep(1:4, rep(50,4))]) gr <- somgrid(topo = "hexagonal") crabs.som <- SOM(lcrabs, gr) plot(crabs.som) ## 2-phase training crabs.som2 <- SOM(lcrabs, gr, alpha = list(seq(0.05, 0, len = 1e4), seq(0.02, 0, len = 1e5)), radii = list(seq(8, 1, len = 1e4), seq(4, 1, len = 1e5))) plot(crabs.som2) # }