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

📄 makecrossvalmodel.m

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