📄 predictoutput.m
字号:
function [Ypredict] = PredictOutput(Xtr,Xtest,XMap,Ytr,YMap,MLKP);
[Dummy, NvarY] = size(Ytr);
[Nobjects,Dummy] = size(Xtest);
if (upper(MLKP.OutputMode) == 'NORMAL')
for iobj=1:Nobjects
YP=zeros(1,NvarY);
XTempMap=XMap;
for i=1:MLKP.OutputConsensus
[Value, Winner] = DetermineWinner(Xtest(iobj,:),XTempMap,MLKP.DistTypeX,MLKP);
YP(1,:)=YP(1,:)+YMap(:,Winner)';
XTempMap(:,Winner)=1.0e+50;
end
Ypredict(iobj,:)=YP(1,:)/MLKP.OutputConsensus;
end
else
[Nobjects,NvarX] = size(Xtr);
WinnerList=zeros(MLKP.Nunits,Nobjects+1);
% determine positions of training objects in Xmap
for iobj=1:Nobjects
[Value, Winner] = DetermineWinner(Xtr(iobj,:),XMap,MLKP.DistTypeX,MLKP);
WinnerList(Winner,1)=WinnerList(Winner,1)+1;
WinnerList(Winner,WinnerList(Winner,1)+1)=iobj;
end
% determine weighted output based on similarities with objects in training set
[Nobjects,NvarX] = size(Xtest);
for iobj=1:Nobjects
XTempMap=XMap;
NormFact=0;
Ypredict(iobj,:)= zeros(1,NvarY);
for i=1:MLKP.OutputConsensus
[Value, Winner] = DetermineWinner(Xtest(iobj,:),XTempMap,MLKP.DistTypeX,MLKP);
if (WinnerList(Winner,1) == 0)
Ypredict(iobj,:) = YMap(:,Winner)';
NormFact=NormFact+1;
else
for iwin=1:WinnerList(Winner,1)
WeightFactor=CalcCorrValues(Xtest(iobj,:),Xtr(WinnerList(Winner,iwin+1),:)');
NormFact=NormFact+WeightFactor;
Ypredict(iobj,:)=Ypredict(iobj,:)+WeightFactor*Ytr(WinnerList(Winner,iwin+1),:);
end
end
XTempMap(:,Winner)=1.0e+50;
end
Ypredict(iobj,:) = Ypredict(iobj,:)/NormFact;
end
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -