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

📄 lnoxval.m

📁 有监督自组织映射-偏最小二乘算法(A supervised self-organising map–partial least squares algorithm),可以用语多变量数据的回归分析
💻 M
字号:
function [MeanRmseVal, StdRmseVal, RmseVal, Ytest1, Ypred1] = LNOXVal(BestMLK,MLKP,Ntest);

Tbegin=cputime;

MLKP.DataFile='Temp/tempfile';
MLKP.DataSet='Orig';
MLKP.ScaleTypeX = 'Raw';   
MLKP.ScaleTypeY = 'Raw';
MLKP.ScaleBack = 'N';
MLKP.SilentMode='N';

XSav=[BestMLK.Xtr; BestMLK.Xtest];
YSav=[BestMLK.Ytr; BestMLK.Ytest];
[Nobj,NvarX]=size(XSav);
[Nobj,NvarY]=size(YSav);
if (upper(MLKP.ProblemType) == 'REG')
    RmseVal=zeros(1,NvarY);
else
    RmseVal=0;
end
Nval=floor(Nobj/Ntest);
Nrest=Nobj-Nval*Ntest;
Ytest1=[];
Ypred1=[];

for ival=1:Nval
    X=XSav;
    Xtest=X(1+(ival-1)*Ntest:ival*Ntest,:);
    X(1+(ival-1)*Ntest:ival*Ntest,:)=[];
    Xtr=X;
    Y=YSav;
    Ytest=Y(1+(ival-1)*Ntest:ival*Ntest,:);
    Y(1+(ival-1)*Ntest:ival*Ntest,:)=[];
    Ytr=Y;
    save Temp/tempfile Xtr Xtest Ytr Ytest  
    [PCTrain,PCTest,NBestMLK,NMLKP] = MakeModel(1,0,MLKP);
    Ytest1=[Ytest1; NBestMLK.Ytest];
    Ypred1=[Ypred1; NBestMLK.PredTest];
    if (upper(MLKP.ProblemType) == 'REG')
        RmseVal(ival,:)=NBestMLK.RmseTest;
    else
        RmseVal(ival)=NBestMLK.PercCorrTest;
    end
end
if (Nrest > 0)
    ival=Nval+1;
    X=XSav;
    Xtest=X(1+(ival-1)*Ntest:end,:);
    X(1+(ival-1)*Ntest:end,:)=[];
    Xtr=X;
    Y=YSav;
    Ytest=Y(1+(ival-1)*Ntest:end,:);
    Y(1+(ival-1)*Ntest:end,:)=[];
    Ytr=Y;
    save ../data/tempfile Xtr Xtest Ytr Ytest  
    [PCTrain,PCTest,NBestMLK,NMLKP] = MakeModel(1,0,MLKP);
    Ytest1=[Ytest1; NBestMLK.Ytest];
    Ypred1=[Ypred1; NBestMLK.PredTest];
    if (upper(MLKP.ProblemType) == 'REG')
        RmseVal(ival,:)=NBestMLK.RmseTest;
    else
        RmseVal(ival)=NBestMLK.PercCorrTest;
    end
    Nval=Nval+1;
end
MeanRmseVal=mean(RmseVal);
StdRmseVal=std(RmseVal);

Tend=cputime;
Message=sprintf('Total time %g seconds',Tend-Tbegin);
disp(Message);

⌨️ 快捷键说明

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