?? crossvalmodel.m
字號(hào):
function [PercCorrTrain,PercCorrTest,BestMLK,MLKP] = CrossValModel(Nval,PercXval,PercTrain);
%
% set cputimer
Tbegin=cputime;
MLKP=SetParamsModel;
load(MLKP.DataFile);
if (upper(MLKP.DataSet) == 'MAKE')
[Xtr,Ytr,Xtest,Ytest] = MakeBalancedSet(X,Y,PercTrain,MLKP);
end
MLK.Xtr=Xtr;
MLK.Ytr=Ytr;
[BestXval,MLK,MLKP] = MakeCrossValModel(Nval,100-PercXval,MLK,MLKP);
% save best X and Y map
XMap=MLK(BestXval).XMap;
YMap=MLK(BestXval).YMap;
save tempmapfile XMap YMap
Message=sprintf('\nStarting external validation');
disp(Message);
% repeat scaling on training set for scaling of external validation set
[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;
save tempdatafile Xtr Xtest Ytr Ytest
% reset training parameters for validation
MLKP.DataSet == 'Orig';
MLKP.MaxIter=0;
MLKP.DataFile='tempdatafile';
MLKP.MapFile='tempmapfile';
if (MLKP.ProblemType == 'Cls')
% calculate confusion tables, overall performance and best model
[BestMLK]= TrainClass(Xtr,Ytr,Xtest,Ytest,MLKP);
PercCorrTrain=BestMLK.PercCorrTrain;
PercCorrTest=BestMLK.PercCorrTest;
else
% calculate RMSEC, RMSEP values, overall performance and best model
[BestMLK]=TrainRegr(Xtr,Ytr,Xtest,Ytest,MLKP);
PercCorrTrain=BestMLK.RmseTrainAll;
PercCorrTest=BestMLK.RmseTestAll;
end
%
% return overall results of modelling procedure
Message=sprintf('\nResult with %s',MLKP.TrainingMethod);
disp(Message);
Message=sprintf('Best overall cross-validation model: %g', PercCorrTrain);
disp(Message);
Message=sprintf('External validation result: %g', PercCorrTest);
disp(Message);
%
% read out cputimer
Tend=cputime;
Message=sprintf('Total time %g seconds',Tend-Tbegin);
disp(Message);
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -