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

📄 lssvmbstep.m

📁 The goal of SPID is to provide the user with tools capable to simulate, preprocess, process and clas
💻 M
字号:
% generate training and test set, ptrn, ttrn, and ptst, ttst, vpred-variable_list.
% crtData, 

t_start=cputime;
vpredWait=vpred;
%ptrn=ptrn(1:50,:); ttrn=ttrn(1:50,1);
nSel=size(ptrn, 2);
stepList=struct('type', ' ', 'name', 'null', 'L3', inf, 'sigOpt', 0, 'gamOpt', 0, 'neffPar', 0); 
lstep = 0;
vpredInit={};
global nlsig kernelType vFixed , nlsig=3; vFixed={}; vFixed={'l_ca125'};
kernelType='rbf'; % kernelType='lin';

%vpredInit={'l_ca125', 'pap', 'sol'}; 
%vpredInit={'meno','colsc3','colsc4','l_ca125','asc','sol','irreg','pap'};
%vpredInit={'l_ca125', 'pap','sol','asc','bilat','colsc4','meno'};%,'colsc4','asc','meno','colsc3','shadows','irreg'};%,'smooth'};
vpredInit={'l_ca125', 'pap','sol','col3', 'bilat','meno', 'asc'};
vpredInit=vpredNew;

%vpredInit={};
idxInit=varIndex(vpred, vpredInit); 
idxWait=setdiff([1:nSel], idxInit); 
vpredRest=vpred(idxWait);
%vpredRest={'smooth'}; idxRest=varIndex(vpred, vpredRest); idxWait=idxRest;
ptrnNew=ptrn(:,idxInit); ptrnRest=ptrn(:, idxWait);
vpredNew=vpredInit;

for iSel=2:nSel,
    disp(' '),
    disp(['<< Step ', num2str(iSel), '>>',]),

    if iSel==1,
        ptrnInit=[]; ptrnWait=ptrn; nstep=3; L3Init=inf;
    else
        ptrnInit=ptrnNew; 
        ll=length(stepList);
        L3Init=stepList(ll).L3;
        ptrnInit=ptrnNew;
        ptrnWait=ptrnRest; vpredWait=vpredRest;
        nstep=1;
    end,
   % if iSel>4, nlsig=2; end,
   % if iSel>6, nlsig=3; end,
   % nlsig=3;

    % forward selection 
    [forList, ptrnNew, ptrnRest, vpredRest, vpredAdd, nAdd]=lssvmBayForward0(ptrnInit, ttrn, ptrnWait, vpredWait, L3Init, nstep);
    
    if nAdd==0,
        break,
    end,       
    
    ll=length(forList);    
    for il=1:ll;
        lstep = lstep + 1;
        stepList(lstep)=forList(il);
    end,
    
    L3Init=forList(ll).L3; sigInit=forList(ll).sigOpt; gamInit=forList(ll).gamOpt;
    ptrnInit=ptrnNew;
    vpredInit=[vpredInit, vpredAdd];
    
    [backList, ptrnNew, vpredNew, nDel]=lssvmBayBackward0(ptrnInit, ttrn, vpredInit, L3Init, sigInit, gamInit);
    vpredNew0=vpredNew;
    if nDel>0,
        ll=length(backList);
        for il=1:ll;
           lstep = lstep + 1;
           stepList(lstep)=backList(il);
       end,
       vpredInit=vpredNew;
       lvn=length(vpredNew); vpredNew0{lvn+1}=backList(ll).name;
    end,
    
    idxNew=varIndex(vpred, vpredNew0); 
    idxWait=setdiff([1:nSel], idxNew); 
    vpredRest=vpred(idxWait);
        
end,

nvpred=length(vpredNew);
disp(' '),
disp('==  Stepwise Summary =='),
disp('#. Input    +/-   L3     sig      gam     NumEffPar '),
for i=1:length(stepList),
    disp([num2str(i), '. ', stepList(i).type, ' ', stepList(i).name, ': ', ... 
          num2str(stepList(i).L3),', ', num2str(stepList(i).sigOpt), ', ', ...
          num2str(stepList(i).gamOpt), ', ', num2str(stepList(i).neffPar)]),
end,

disp(' '),
disp('==  Input Selected ==')
for i=1:nvpred,
    disp([num2str(i), '. ', vpredNew{i}]),
end

min_elapsed=(cputime-t_start)/60;
disp(['time elapsed (min) : ', num2str(min_elapsed)]),

%save MATstepr18f1-265 stepList vpredNew min_elapsed,
%save MATstepr18f1 stepList vpredNew min_elapsed,
%save MATstep18tot1 stepList vpredNew min_elapsed,

return,

⌨️ 快捷键说明

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