📄 makecrossvalmodel.m
字号:
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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -