📄 initmapweights.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 + -