SOM Toolbox | Online documentation | http://www.cis.hut.fi/projects/somtoolbox/ |
[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); som_show(sMap,'color',admu); 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: 2 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. See also SOM_QUALITY, SOM_BMUS, SOM_HITS.