⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 crossvalmodel.m

📁 有监督自组织映射-偏最小二乘算法(A supervised self-organising map–partial least squares algorithm),可以用语多变量数据的回归分析
💻 M
字号:
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);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -