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

📄 initmod1.m

📁 新的神经网络算法源程序
💻 M
字号:
function [indsld, wsld] = initmod1(pmat, nbwavelon, y, nbvar);%Initmod1: WaveNet initialization mode 1%%       [indsld, wsld] = initmod1(pmat, nbwavelon, y, nbvar)%%Algorithm: residual based regressor selection.%By Qinghua Zhang. March, 1994.if nbwavelon < 0  %% automatic network order determination  nbwavelon=min(fix((size(pmat,1)-nbvar-2) / (nbvar+2)), size(pmat,2)-nbvar-1);  AD = 1;else AD = 0; %% network order is givenend%initialization by SELECTING the LINEAR TERMSbc = pmat(:,1:(nbvar+1)) \ y';resid = y' - pmat(:,1:(nbvar+1))*bc;  Ij = (nbvar+2):size(pmat,2);   indsld = [1:nbvar+1]; wsld = [bc'];STDY = sqrt(mean((y-mean(y)).^2));NSRMSE = sqrt(mean(resid.^2)) / STDY;% initialize plotclf; plot([0 nbwavelon], [0 NSRMSE],'.');title('Residual Based Selection');xlabel('Nb of selected wavelets'); ylabel('NSRMSE');drawnowresidhd=line('color','k','linestyle','o','erase','none', ...             'xdata',[0],'ydata',[NSRMSE]);drawnow;if AD==1, AIC=[]; endfor i=(nbvar+2):(nbwavelon+nbvar+1)  V = pmat(:,Ij);  [tmpbuf, litmp] = max((V'*resid).^2);  li = Ij(litmp);  indsld = [indsld li];  Ij = Ij([1:(litmp-1) (litmp+1):length(Ij)]);  uli = pmat(:,li)'*resid;  wsld = [wsld uli];  resid = resid - uli*pmat(:,li);  NSRMSE = sqrt(mean(resid.^2)) / STDY;  % update plot  set(residhd, 'linestyle','*', 'xdata',[i-(nbvar+1)], 'ydata',[NSRMSE]);  drawnow  if AD==1    vary=cov(resid);             N=length(y);    dim=(nbvar+2)*(i-nbvar-1)+nbvar+1;    tamb=((1+dim/N)/(1-dim/N))*0.5*vary;    AIC=[AIC tamb];   endendglobal Pause_Time; Pause_Time=0; if AD==1  time_on = clock; clf; plot(AIC); title('Akaike''s Final Prediction Error Criterion') xlabel('number of wavelets'); ylabel('FPEC'); [tmp, nbwavelon] = min(AIC); nbw=input(['  Enter the number of wavelets [Default=' ...             int2str(nbwavelon) ']: ']); Pause_Time = etime(clock, time_on);  if ~isempty(nbw)   if(nbw<1 | nbw>length(AIC))     disp([7 '  Invalid value. Default value is used.']);   else   nbwavelon = nbw;   end end indsld = indsld(1:(nbwavelon+nbvar+1)); wsld = wsld(1:(nbwavelon+nbvar+1));end %end

⌨️ 快捷键说明

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