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

📄 trainclassreg.m

📁 有监督自组织映射-偏最小二乘算法(A supervised self-organising map–partial least squares algorithm),可以用语多变量数据的回归分析
💻 M
字号:
function [MLK]= TrainClassReg(Xtr,Ytr,Xtest,Ytest,MLKP);
%
% Initialise weight vectors of input map (XMap) and output map (YMap)
if (length(MLKP.MapFile) == 0)
    [XMap, YMap] = InitMapWeights(Xtr, Ytr, MLKP);
else
    load(MLKP.MapFile);
end
NewXMap=XMap;
NewYMap=YMap;
%
% Start learning the relationship between input and output
TrainingMethod=upper(MLKP.TrainingMethod);
if (TrainingMethod == 'BDK')
    % in a bi-directional BDK-XYF way
    [XMap,YMap,MLK.WeightEvolution] = LearnBDK(Xtr,Ytr,NewXMap,NewYMap,MLKP);
elseif (TrainingMethod == 'XYF')
    % in a X-Y fused Kohonen way
    [XMap,YMap,MLK.WeightEvolution] = LearnXYF(Xtr,Ytr,NewXMap,NewYMap,MLKP);
elseif (TrainingMethod == 'CPN')
    % in a uni-directional CPN way
    [XMap,YMap,MLK.WeightEvolution] = LearnCPN(Xtr,Ytr,NewXMap,NewYMap,MLKP);
elseif (TrainingMethod == 'AKH')
    % Kohonen mapping followed by averaging to construct Ymap
    [XMap,MLK.WeightEvolution] = LearnKOH(Xtr,NewXMap,MLKP);
    [YMap] = AverKohMap(Xtr,XMap,Ytr,MLKP);
    % XY simultaneous mapping, proposed by Tuevo Kohonen (1 distance for XY)
elseif (TrainingMethod == 'SKN')
    [XMap,YMap,MLK.WeightEvolution] = LearnSKN(Xtr,Ytr,NewXMap,NewYMap,MLKP);
elseif (TrainingMethod == 'LVQ')
    if (length(MLKP.MapFile) == 0)
        % create maps by a CPN learning stage
        [XMap,YMap,MLK.WeightEvolution] = LearnCPN(Xtr,Ytr,NewXMap,NewYMap,MLKP);
    end
    NewXMap = XMap;
    NewYMap = AssignClass(YMap);
    XMap= LearnLVQ(Xtr,Ytr,NewXMap,NewYMap,MLKP);
elseif (TrainingMethod == 'PLS')
    [B,XLoadings,MLKP] = PlsTrain(Xtr, Ytr, MLKP);
end

%
% Determine the performance of the classifier for the training and test set
if (TrainingMethod == 'PLS')
    YpredTrain = PlsPred(Xtr, Ytr, B, MLKP);
    YpredTest = PlsPred(Xtest, Ytest, B, MLKP);
    MLK.BCoeff = B;
    MLK.XLoadings=XLoadings;
else
    YpredTrain = PredictOutput(Xtr,Xtr,XMap,Ytr,YMap,MLKP);
    YpredTest = PredictOutput(Xtr,Xtest,XMap,Ytr,YMap,MLKP);
    MLK.XMap=XMap;
    MLK.YMap=YMap;
end
[MLK] = EvaluateOutput(Ytr,YpredTrain,Ytest,YpredTest,1,MLK,MLKP);

% Save data sets
MLK.Xtr=Xtr;
MLK.Ytr=Ytr;
MLK.Xtest=Xtest;
MLK.Ytest=Ytest;
MLK.PredTrain=YpredTrain;
MLK.PredTest=YpredTest;
%
% Ready

⌨️ 快捷键说明

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