SOM Toolbox Online documentation


[adm,admu,tdmu] = som_distortion(sM, D, arg1, arg2)

SOM_DISTORTION Calculate distortion measure for the map.

 [adm,admu,tdmu] = som_distortion(sMap, D, [radius], ['prob'])

  adm = som_distortion(sMap,D);
  [adm,admu] = som_distortion(sMap,D);

  Input and output arguments: 
   sMap     (struct) a map struct
   D        (struct) a data struct
            (matrix) size dlen x dim, a data matrix
   [radius] (scalar) neighborhood function radius to be used.
                     Defaults to the last radius_fin in the 
                     trainhist field of the map struct, or 1 if
                     that is missing.
   ['prob'] (string) If given, this argument forces the 
                     neigborhood function values for each map
                     unit to be normalized so that they sum to 1.

   adm      (scalar) average distortion measure (sum(dm)/dlen)
   admu     (vector) size munits x 1, average distortion in each unit 
   tdmu     (vector) size munits x 1, total distortion for each unit

 The distortion measure is defined as: 
    E = sum sum h(bmu(i),j) ||m(j) - x(i)|| 
         i   j    
 where m(i) is the ith prototype vector of SOM, x(j) is the jth data
 vector, and h(.,.) is the neighborhood function. In case of fixed
 neighborhood and discreet data, the distortion measure can be
 interpreted as the energy function of the SOM. Note, though, that
 the learning rule that follows from the distortion measure is
 different from the SOM training rule, so SOM only minimizes the
 distortion measure approximately.
 If the 'prob' argument is given, the distortion measure can be 
 interpreted as an expected quantization error when the neighborhood 
 function values give the likelyhoods of accidentally assigning 
 vector j to unit i. The normal quantization error is a special case 
 of this with zero incorrect assignement likelihood. 
 NOTE: when calculating BMUs and distances, the mask of the given 
       map is used.


[ SOM Toolbox online doc ]