survey performed by Juha Ikonen, May 21st 1999

SOM_PAK is a collection of tools for implementing the SOM (or Kohonen Network) algorithm. The program package has been developed to demonstrate the implementation of the SOM algorithm and to ease first experiments. It is created by the SOM Programming Team of the Helsinki University of Technology and can be considered as the original SOM implementation.

  • The programs are fast but a bit difficult to use.
  • Old-fashion or UNIX-style user interface.
  • Map parameters are rather limited such as dimensionality, topology.
  • Lacks visualization functions

Disclaimer: If any information on this page simply is not true, please tell us about it and we'll correct it ASAP.

Disclaimer: The opinions and observation herein should be considered personal of the person having performed by the survey, at the time of the survey. They do not reflect any official standing of his employer, of the Laboratory of Computer and Information Science or the Neural Networks Research Center.


Program name SOM_PAK Version 3.1
Availability Program is free for scientific purposes and is available at
Postal address:
SOM Programming Team of the Helsinki University of Technology
Laboratory of Computer and Information Science
Rakentajanaukio 2 C, SF-02150 Espoo
Purpose An interactive monitoring tool using SOM algorithm.
Operating system UNIX and MS-DOS. Program is distributed as source code in C language, pre-compiled binaries for MS-DOS are also available.
User interface Command line interface. The package contains 11 separate programs or tools, user must know which tools to use to achieve desired results. The approach can not be considered user-friendly, although it may be very effective and convenient in many applications.
Documentation PostScript/text file, which also reveals the basic theory of SOM.

SOM features

map parameters
Teaching algorithm Standard algorithm. Data vectors can be forced to specified points in resulting map.
[is implementation correct?]
Map size 2-dimensional map grid
minimum size: 1x1
maximum size: 74x74
Map lattice and shape Map lattice: rectangular or hexagonal
Map shape: rectangular
Neighborhood function Function type: Bubble or Gaussian
Neighborhood size (h):
Type: linear
Parameters: initial value (decreases automatically to one during trainig)
Learning rate (alpha):
Type: linear or inverse (1/t)
Parameters: initial value (decreases automatically to zero during training)
Initialization Data samples
Distance function Euclidian
Unknown components Allowed
Teaching length Explicit
[Windows NT 4.0, 333 MHz Pentium II, 128 MB RAM]
for ~3000 13-dim data samples, 4 epochs
training time: 36 seconds
Results seemed ok
final average quantization error: 0.885901
final topographic error: not applicable


Input formats ASCII, compressed (gzip) ASCII, stdin
Data handling and selection No data handling and selection tools are provided
Output formats ASCII or compressed (gzip) ASCII for data, PostScript for images. Output can be sent to stdout instead of a regular file.
Map measures Quantization error
Labeling Simple: labels can be included in a calibration data set. BMU's for calibration data samples are sought and labeled with the labels included.
Clustering No
Inspection of neurons Simple: weights of a neuron can be viewed from map file, no visualization tool is provided.
Clusters/map shape Clusters: not applicable
Sammon mapping: output to data file and PostScript image.
U-matrix: PostScript image
Correlations Component planes: single plane or all planes.
Data projections Single: BMU can be sought for a data vector, corresponding label will be attached if defined. Quantization error is also calculated for the data vector. Projection data is stored in a file, no visualization tool is provided.
Alternatively a trajectory of BMU's for a set of data vectors can be formed and saved as a PostScript image.
Markers Labels
Monday, 09-Oct-2000 12:53:09 EEST