makecrossvalmodel.m
来自「有监督自组织映射-偏最小二乘算法(A supervised self-organ」· M 代码 · 共 69 行
M
69 行
function [BestXval,BestMLK,MLKP] = MakeCrossValModel(Nval,PercentageTrain,MLK,MLKP);
if (upper(MLKP.ProblemType) == 'CLS')
OldPercCorrTest=0;
else
OldPercCorrTest=realmax;
end
X=MLK.Xtr;
Y=MLK.Ytr;
for ival=1:Nval
%
% make a (balanced) division in training and test sets
[Xtr,Ytr,Xtest,Ytest] = MakeBalancedSet(X,Y,PercentageTrain,MLKP);
%
% scale if necessary the original or generated data sets
[NewXtr,ScaleParX] = ScaleData(Xtr, MLKP.ScaleTypeX);
Xtr=NewXtr;
[NewXtest] = ReScaleData(Xtest,MLKP.ScaleTypeX,ScaleParX);
Xtest=NewXtest;
[NewYtr,ScaleParY] = ScaleData(Ytr, MLKP.ScaleTypeY);
Ytr=NewYtr;
[NewYtest] = ReScaleData(Ytest,MLKP.ScaleTypeY,ScaleParY);
Ytest=NewYtest;
%
if (upper(MLKP.KernelTransformation) == 'Y')
[Ktr,Ktest]=MakeKernel(Xtr,Xtest,MLKP);
Xtr=Ktr;
Xtest=Ktest;
clear Ktr Ktest
end
%
% start the modelling
if (upper(MLKP.ProblemType) == 'CLS')
% calculate confusion tables, overall performance and best model
[MLK]= TrainClass(Xtr,Ytr,Xtest,Ytest,MLKP);
PercCorrTrain(ival)=MLK.PercCorrTrain;
PercCorrTest(ival)=MLK.PercCorrTest;
if PercCorrTest(ival) > OldPercCorrTest
OldPercCorrTrain = PercCorrTrain(ival);
OldPercCorrTest = PercCorrTest(ival);
BestXval=ival;
end
else
% calculate RMSEC, RMSEP values, overall performance and best model
[MLK]=TrainRegr(Xtr,Ytr,Xtest,Ytest,MLKP);
PercCorrTrain(ival)=MLK.RmseTrainAll;
PercCorrTest(ival)=MLK.RmseTestAll;
if PercCorrTest(ival) < OldPercCorrTest
OldPercCorrTrain = PercCorrTrain(ival);
OldPercCorrTest = PercCorrTest(ival);
BestXval=ival;
end
end
BestMLK(ival)=MLK;
end
%
% return overall results of modelling procedure
MeanPCTrain=mean(PercCorrTrain);
StdPCTrain=std(PercCorrTrain);
Message=sprintf('Training: Mean %g Stddev %g', MeanPCTrain, StdPCTrain);
disp(Message);
MeanPCTest=mean(PercCorrTest);
StdPCTest=std(PercCorrTest);
Message=sprintf('Test: Mean %g Stddev %g', MeanPCTest, StdPCTest);
disp(Message);
Message=sprintf('Best model: Training %g, Test %g', OldPercCorrTrain, OldPercCorrTest);
disp(Message);
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?