| 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.