The initSOM function returns a paramSOM class object that contains the parameters needed to run the SOM algorithm.

  dimension = c(5, 5),
  topo = c("square", "hexagonal"),
  radius.type = c("gaussian", "letremy"),
  dist.type = switch(match.arg(radius.type), letremy = "letremy", gaussian = "euclidean"),
  type = c("numeric", "relational", "korresp"),
  mode = c("online"),
  affectation = c("standard", "heskes"),
  maxit = 500, = 0,
  verbose = FALSE,
  proto0 = NULL,
  init.proto = switch(type, numeric = "random", relational = "obs", korresp = "random"),
  scaling = switch(type, numeric = "unitvar", relational = "none", korresp = "chi2"),
  eps0 = 1

# S3 method for paramSOM
print(x, ...)

# S3 method for paramSOM
summary(object, ...)



Vector of two integer points corresponding to the x dimension and the y dimension of the myGrid class object. Default values are: (5,5). Other data-driven defaults are set by function trainSOM.


The topology to be used to build the grid of the myGrid class object. Accept values "square" (Default) or "hexagonal".


The neighborhood type. Default value is "gaussian", which corresponds to a Gaussian neighborhood. The annealing of the neighborhood during the training step is similar to the one implemented in yasomi. The alternative value corresponds to an piecewise linear neighborhood as implemented by Patrick Letrémy in his SAS scripts.


The neighborhood relationship on the grid. One of c("letremy", "euclidean", "maximum", "manhattan", "canberra", "minkowski"). When radius.type is letremy, default value is letremy which is the original implementation by Patrick Letrémy. When radius.type is gaussian, default value is euclidean. The other possible values are passed to method in function dist. dist.type = "letremy" is not permitted with radius.type = "gaussian". Only euclidian is allowed with hexagonal topology.


The SOM algorithm type. Possible values are: numeric (default value), korresp and relational.


The SOM algorithm mode. Default value is online.


The SOM affectation type. Default value is standard which corresponds to a hard affectation. Alternative is heskes which corresponds to Heskes's soft affectation.


The maximum number of iterations to be done during the SOM algorithm process. Default value is 500. Other data-driven defaults are set by function trainSOM.

The number of intermediate back-ups to be done during the algorithm process. Default value is 0.


The boolean value which activates the verbose mode during the SOM algorithm process. Default value is FALSE.


The initial prototypes. Default value is NULL.


The method to be used to initialize the prototypes, which may be "random" (randomization), "obs" (each prototype is assigned a random observation) or "pca". In pca the prototypes are initialized to the observations closest to a grid along the two first principal components of the data (numeric case) or along a two-dimensional multidimensional scaling (relational case, equivalent to a relational PCA). Default value is random for the numeric and korresp types, and obs for the relational type. pca is not available for korresp SOM.


The type of data pre-processing. For numeric SOM, possibilities are unitvar (data are centered and scaled; this is the default value for a numeric SOM), none (no pre-processing), and center (data are centered but not scaled). For korresp SOM, the only available value is chi2. For relational SOM, possibilities are none (no pre-processing, default value for relational SOM) and cosine. This last one first turns the dissimilarity into a similarity using the suggestion in (Lee and Verleysen, 2007). Then, a cosine normalization as described in (Ben-Hur and Weston, 2010) is applied to the kernel, that is finally turned back into its induced distance. For further details on this processing, have a look at the corresponding documentation in the directory "doc" of the package's installation directory.


The scaling value for the stochastic gradient descent step in the prototypes' update. The scaling value for the stochastic gradient descent step is equal to \(\frac{0.3\epsilon_0}{1+0.2t/\textrm{dim}}\) where \(t\) is the current step number and \(\textrm{dim}\) is the grid dimension (width multiplied by height).


an object of class paramSOM.


not used


an object of class paramSOM.


The initSOM function returns an object of class paramSOM which is a list of the parameters passed to the initSOM function, plus the default parameters for the ones not specified by the user.


Ben-Hur A., Weston J. (2010) A user's guide to support vector machine. In: Data Mining Techniques for the Life Sciences, Springer-Verlag, 223-239.

Heskes T. (1999) Energy functions for self-organizing maps. In: Kohonen Maps, Oja E., Kaski S. (Eds.), Elsevier, 303-315.

Lee J., Verleysen M. (2007) Nonlinear Dimensionality Reduction. Information Science and Statistics series, Springer.

Letrémy P. (2005) Programmes basés sur l'algorithme de Kohonen et dediés à l'analyse des données. SAS/IML programs for 'korresp'.

Rossi F. (2013) yasomi: Yet Another Self-Organising Map Implementation. R package, version 0.3.

See also

See initGrid for creating a SOM prior structure (grid).


Élise Maigné
Madalina Olteanu
Nathalie Vialaneix


# create a default 'paramSOM' class object
default.paramSOM <- initSOM()
#> Summary
#>   Class                            :  paramSOM 
#>   Parameters of the SOM
#>     SOM mode                       :  online 
#>     SOM type                       :  numeric 
#>     Affectation type               :  standard 
#>     Grid                           : 
#>       Self-Organizing Map structure
#>         Features   :
#>            topology     :  square 
#>            x dimension  :  5 
#>            y dimension  :  5 
#>            distance type:  euclidean 
#>     Number of iterations           :  500 
#>     Number of intermediate backups :  0 
#>     Initializing prototypes method :  random 
#>     Data pre-processing type       :  unitvar 
#>     Neighbourhood type             :  gaussian