| SOM Toolbox | Online documentation | http://www.cis.hut.fi/projects/somtoolbox/ |
[color,X]=som_fuzzycolor(sM,T,R,mode,initRGB,S)
SOM_FUZZYCOLOR Heuristic contraction projection/soft cluster color coding for SOM
function [color,X]=som_softcolor(map,T,R,mode,initRGB,S)
sM (map struct)
[T] (scalar) parameter that defines the speed of contraction
T<1: slow contraction, T>1: fast contraction. Default: 1
[R] (scalar) number of rounds, default: 30
[mode] (string) 'lin' or 'exp', default: 'lin'
[initRGB] (string) Strings accepted by SOM_COLORCODE, default: 'rgb2'
[S] (matrix) MxM matrix a precalculated similarity matrix
color (matrix) of size MxRx3 resulting color codes at each step
X (matrix) of size MxRx2 coordiantes for projected unit weight vectors
at each step of iteration. (Color code C is calculated using this
projection.)
The idea of the projection is to use a naive contraction model which pulls the units
together. Units that are close to each other in the output space (clusters)
contract faster into the same point in the projection. The original position for
each unit is its location in the topological grid.
This is an explorative tool to color code the map units so that similar units
(in the sense of euclidean norm) have similar coloring (See also SOM_KMEANSCOLOR)
The tool gives a series of color codings which start from an initial color coding
(see SOM_COLORCODE) and show the how the fuzzy clustering process evolves.
The speed of contraction is controlled by the input parameter T. If it is high the
projection contracts more slowly and reveals more intermediate stages (hierarchy).
A good value for T must be searched manually. It is probable that the
default values do not yield good results.
If the conatrction process may be slow. In this case the mode can be set to
'exp' instead of 'lin', however, then the computing becomes heavier.
EXAMPLE
load iris; % or any other map struct sM
[color]=som_fuzzycolor(sM,'lin',10);
som_show(sM,'color',color);
See also SOM_KMEANSCOLOR, SOM_COLORCODE, SOM_CLUSTERCOLOR
REFERENCES
Johan Himberg, "A SOM Based Cluster Visualization and Its Application for False Coloring",
in Proceedings of International Joint Conference on Neural Networks (IJCNN2000)},
pp. 587--592,Vol. 3, 2000
Esa Alhoniemi, Johan Himberg, and Juha Vesanto, Probabilistic Measures for Responses of
Self-Organizing Map Units, pp. 286--290, in Proceedings of the International ICSC Congress
on Computational Intelligence Methods and Applications (CIMA '99)}, ICSC Academic Press},
1999
Outline of the heuristic
First a matrix D of squared pairwise euclidean distances D(i,j)=d(i,j)^2 between
map weight vectors is calculated. This matrix is transformed into a similarity matrix S,
s(i,j)=exp(-(D(i,j)/(T.^2*v)), where T is a free input parameter and v the variance of
all elements of D v=var(D(:)). The matrix is further normalized so that all rows sum to
one. The original topological coordinates X=som_unit_coords(sM) are successively
averaged using this matrix. X(:,:,i)=S^i*X(:,:,1); As the process is actually a series
of successive weighted averagings of the initial coordinates, all projected points
eventually contract into one point. T is a user defined parameter that defines how fast
the projection contracts into this center point. If T is too small, the process will
end into the center point at once.
In practise, we don't calculate powers of S, but compute
X(:,:,i)=S.*X(:,:,i-1); % mode: 'lin'
The contraction process may be slow if T is selected to be large,
then for each step the similarity matrix is squared
X(:,:,i)=S*X(:,:,1); S=S*S % mode: 'exp'
The coloring is done using the function SOM_COLORCODE according to the
projections in X, The coordinates are rescaled in order to achieve maximum
color resolution.