📄 trainclassreg.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 + -