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