## Self-Organizing Maps: Online Algorithm

### Description

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

### Usage

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

### Arguments

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

`grid` |
A grid for the representatives: see |

`rlen` |
the number of updates: used only in the defaults for |

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

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

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

### Details

`alpha`

and `radii`

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

### Value

An object of class `"SOM"`

with components

`grid` |
the grid, an object of class |

`codes` |
a matrix of representatives. |

### References

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.

### See Also

### Examples

```
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, length.out = 1e4), seq(0.02, 0, length.out = 1e5)),
radii = list(seq(8, 1, length.out = 1e4), seq(4, 1, length.out = 1e5)))
plot(crabs.som2)
```