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

📄 initmapweights.m

📁 有监督自组织映射-偏最小二乘算法(A supervised self-organising map–partial least squares algorithm),可以用语多变量数据的回归分析
💻 M
字号:
function [XMap,YMap] = InitMapWeights(X, Y, MLKP);
%
% reset random generator to a fixed sequence
% this yields reproducable map weights
if upper(MLKP.FixedRandomWeights) == 'Y'
    rand('state',MLKP.RandomInitWeights);
else
    rand('state',sum(100*clock));
end
%
% start initialisation
[Nobjects, NvarX] = size(X);
if (upper(MLKP.InitMode) == 'SELECT' & Nobjects > MLKP.Nunits)
    PermList=randperm(Nobjects);
    X=X(PermList,:);
    XMap=X(1:MLKP.Nunits,:)'*MLKP.InitFract;
    if (upper(MLKP.ProblemType) =='CLS' | upper(MLKP.ProblemType) =='REG')
        Y=Y(PermList,:);
        YMap=Y(1:MLKP.Nunits,:)'*MLKP.InitFract;
    end
else
    if (upper(MLKP.InitMode) == 'SELECT')
        disp('Not enough objects in data set available: random weight initialisation applied');
    end
    MinValX = min(X);
    MaxValX = max(X);
    MeanValX = mean(X);
    RangeValX = (MaxValX-MinValX)*MLKP.InitFract;
    if (upper(MLKP.ProblemType) ~='MAP')
        [Nobjects, NvarY] = size(Y);
        MinValY = min(Y);
        MaxValY = max(Y);
        MeanValY = mean(Y);
        RangeValY = (MaxValY-MinValY)*MLKP.InitFract;
    end
    for iunit=1:MLKP.Nunits
        for ivar = 1:NvarX
            XMap(ivar,iunit) = MeanValX(ivar)+2*(rand-0.5)*RangeValX(ivar);
        end
        if (upper(MLKP.ProblemType) ~='MAP')
            for ivar = 1:NvarY
                YMap(ivar,iunit) = MeanValY(ivar)+2*(rand-0.5)*RangeValY(ivar);
            end
        else
            YMap=[];
        end
    end
end
%
% reset random generator to an arbitrary starting point
rand('state',sum(100*clock));

⌨️ 快捷键说明

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