⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 som_quality.m

📁 it is matlab code , som(slef organizing map) tool for matlab
💻 M
字号:
function [mqe,tge] = som_quality(sMap, D)%SOM_QUALITY Calculate the mean quantization and topographic error.%% [qe,te] = som_quality(sMap, D)%%  qe = som_quality(sMap,D);%  [qe,te] = som_quality(sMap,sD);%%  Input and output arguments: %   sMap     (struct) a map struct%   D                 the data%            (struct) a data struct%            (matrix) a data matrix, size dlen x dim%%   qe       (scalar) mean quantization error%   te       (scalar) topographic error%% The issue of SOM quality is a complicated one. Typically two% evaluation criterias are used: resolution and topology preservation.% If the dimension of the data set is higher than the dimension of the % map grid, these usually become contradictory goals. %% The first value returned by this function measures resolution and the% second the topology preservation.%  qe : Average distance between each data vector and its BMU.%  te : Topographic error, the proportion of all data vectors%       for which first and second BMUs are not adjacent units.%% NOTE: when calculating BMUs of data vectors, the mask of the given %       map is used.%% For more help, try 'type som_quality' or check out the online documentation.% See also SOM_BMUS.%%%%%%%%%%%%% DETAILED DESCRIPTION %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% som_quality%% PURPOSE%% Calculates two quality measures for the given map.%% SYNTAX%%  qe = som_quality(sM,sD);%  qe = som_quality(sM,D);%  [qe,te] = som_quality(...);%% DESCRIPTION%% This function measures the quality of the given map. The measures are% data-dependent: they measure the map in terms of the given% data. Typically, the quality of the map is measured in terms of the% training data. The returned quality measures are average quantization% error and topographic error.%% The issue of SOM quality is a complicated one. Typically two evaluation% criterias are used: resolution and topology preservation. There are% many ways to measure them. The ones implemented here were chosen for% their simplicity.%%  qe : Average distance between each data vector and its BMU.%       Measures map resolution.%  te : Topographic error, the proportion of all data vectors%       for which first and second BMUs are not adjacent units.%       Measures topology preservation.%% NOTE: when calculating BMUs of data vectors, the mask of the given %       map is used. The mask affects the quantization errors, too.%       If you want the quantization errors without the weighting given%       by the mask, you can use the following code: %         bmus = som_bmus(sMap,D); % this uses the mask in finding the BMUs%         for i=1:length(bmus), %           dx = sMap.codebook(bmus(i),:)-D(i,:); % m - x%           dx(isnan(dx)) = 0;                    % remove NaNs %           qerr(i) = sqrt(sum(dx.^2));           % euclidian distance%         end%         qe = mean(qerr); % average quantization error%% Please note that you should _not_ trust the measures blindly. Generally,% both measures give the best results when the map has overfitted the% data. This may happen when the number of map units is as large or larger% than the number of training samples. Beware when you have such a case.%% REFERENCES%% Kohonen, T., "Self-Organizing Map", 2nd ed., Springer-Verlag, %    Berlin, 1995, pp. 113.% Kiviluoto, K., "Topology Preservation in Self-Organizing Maps", %    in the proceeding of International Conference on Neural%    Networks (ICNN), 1996, pp. 294-299.%% INPUT ARGUMENTS%%  sMap    (struct) Map struct.%  D                The data to be used.%          (matrix) A data matrix, size dlen x dim.%          (struct) A data struct.%% OUTPUT ARGUMENTS% %  qe      (scalar) mean quantization error%  te      (scalar) topographic error%% EXAMPLES%%  qe = som_quality(sMap,D);%  [qe,te] = som_quality(sMap,sD);%% SEE ALSO% %  som_bmus         Find BMUs for the given set of data vectors.% Copyright (c) 1997-2000 by the SOM toolbox programming team.% http://www.cis.hut.fi/projects/somtoolbox/% Version 1.0beta juuso 220997% Version 2.0beta juuso 151199%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% check arguments% input argumentsif nargin < 2, error('Not enough input arguments.'); end% dataif isstruct(D), D = D.data; end[dlen dim] = size(D);% calculate topographic error, too?if nargout==1, b=1; else b=[1:2]; end[bmus qerrs]= som_bmus(sMap,D,b);inds = find(~isnan(bmus(:,1)));bmus = bmus(inds,:);qerrs = qerrs(inds,:);l = length(inds);if ~l, error('Empty data set.'); end% mean quantization errormqe = mean(qerrs(:,1));if length(b)==2, % topographic error  Ne = full(som_unit_neighs(sMap.topol));  tge = 0;  for i=1:l, tge = tge+(Ne(bmus(i,1),bmus(i,2)) ~= 1); end  tge = tge / l;else  tge = NaN;endreturn;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -