trainclassreg.m
来自「有监督自组织映射-偏最小二乘算法(A supervised self-organ」· M 代码 · 共 67 行
M
67 行
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 + =
减小字号Ctrl + -
显示快捷键?