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

📄 mregwav2.m

📁 关于svm的例程
💻 M
字号:
% Example of multiscale approximation using
% Regularization Networks 
% 
% Sin/Sinc frame are used for approximating a
% Sin + sinc functions.
%
%
% 30/10/2000 AR
%
%

close all
clear all
itermax=1;
errabs=zeros(itermax,2);
errl2=zeros(itermax,2);
lambda=40;  % 40
lambda1=10; % 10
for i=1:itermax
   %--------------------The Data-----------------------------
   N=500;
   xp=1.5+rand(10,1);
   x=sort([0.01; 9.99;10*rand(N-2,1);xp]);
   bruit=0.2;
   y=sin(x)+sinc(1*(x-5))+sinc(5*(x-2))+bruit*randn(size(x));
   xf=linspace(0,10,200)';
   yapprox=sin(xf);
   ydet3=sinc(1*(xf-5));
   ydet2=sinc(5*(xf-2));
   yf=yapprox+ydet3+ydet2;
   
   %-------------------Semi Parametrique  + Step 1  Catching noise-------------------
 
   n=200;
   t=linspace(0,10,n);
   fr1=sin(6*pi*(t-1))./(6*pi*(t-1));
   fr2=sin(6*pi*(t-2))./(6*pi*(t-2));
   fr3=sin(6*pi*(t-3))./(6*pi*(t-3));
   fr4=sin(6*pi*(t-4))./(6*pi*(t-4));
   fr5=sin(6*pi*(t-5))./(6*pi*(t-5));
   fr6=sin(6*pi*(t-6))./(6*pi*(t-6));
   fr7=sin(6*pi*(t-7))./(6*pi*(t-7));
   fr8=sin(6*pi*(t-8))./(6*pi*(t-8));
   fr9=sin(6*pi*(t-9))./(6*pi*(t-9));
   
   framematrix=[fr1;fr2;fr3;fr4;fr5;fr6;fr7;fr8;fr9];
   
   x1=x;
   x2=x;
      
   kernel='numerical';
   spanning='sinc13_sin';
   K=kernelframe(x1,kernel,x2,framematrix,t);
   T=phispan(x,spanning);
   [c,d]=regsolve(K,T,y,lambda);
   y1=T*d;
   x1=xf;
   K=kernelframe(x1,kernel,x2,framematrix,t);
   T=phispan(x1,spanning);
   
   det1=K*c;
   f1=K*c+T*d;
   fprintf('step 1 done\n');
 
   %-------------------Step 2 Catching Next resolution sinc(3x)--------------------
 
   n=200;
   t=linspace(0,10,n);
   fr1=sin(1*pi*(t-1))./(1*pi*(t-1));
   fr2=sin(1*pi*(t-2))./(1*pi*(t-2));
   fr3=sin(1*pi*(t-3))./(1*pi*(t-3));
   fr4=sin(1*pi*(t-4))./(1*pi*(t-4));
   fr5=sin(1*pi*(t-5))./(1*pi*(t-5));
   fr6=sin(1*pi*(t-6))./(1*pi*(t-6));
   fr7=sin(1*pi*(t-7))./(1*pi*(t-7));
   fr8=sin(1*pi*(t-8))./(1*pi*(t-8));
   fr9=sin(1*pi*(t-9))./(1*pi*(t-9));
   fr10=sin(3*pi*(t-1))./(3*pi*(t-1));
   fr11=sin(3*pi*(t-2))./(3*pi*(t-2));
   fr12=sin(3*pi*(t-3))./(3*pi*(t-3));
   fr13=sin(3*pi*(t-4))./(3*pi*(t-4));
   fr14=sin(3*pi*(t-5))./(3*pi*(t-5));
   fr15=sin(3*pi*(t-6))./(3*pi*(t-6));
   fr16=sin(3*pi*(t-7))./(3*pi*(t-7));
   fr17=sin(3*pi*(t-8))./(3*pi*(t-8));
   fr18=sin(3*pi*(t-9))./(3*pi*(t-9));
   framematrix=[fr1;fr2;fr3;fr4;fr5;fr6;fr7;fr8;fr9;fr10;fr11;fr12;fr13;fr14;fr15;fr16;fr17;fr18];
   
      kernel='numerical';
   spanning='sin';
   
   x1=x;
   x2=x;
   K=kernelframe(x1,kernel,x2,framematrix,t);
   T=phispan(x,spanning);
   [c,d]=regsolve(K,T,y1,lambda1);
   y2=T*d;
   x1=xf;
   K=kernelframe(x1,kernel,x2,framematrix,t);
   T=phispan(x1,spanning);
   det2=K*c;
   f2=K*c+T*d;
   fprintf('step 2 done\n');
   approx=T*d;
   yfull=approx+det1+det2;
   %--------------------------SVM Approximation -----------------------
   %----------------------Learning Parameters -------------------   C = 1;  lambda3 = 0.000001; 
   epsilon = .1;   kerneloption = 0.25;   kernel='gaussian';
   [xsup,ysup,w,w0] = svmreg(x,y,C,epsilon,kernel,kerneloption,lambda3,0);   rx = svmval(xf,xsup,w,w0,kernel,kerneloption);   
   
   
   
   %-------------------Plotting the results--------------------
   
   figure
   plot(xf,yf,'k',x,y,'k+',xf,yfull,'b',xf,rx,'r');
   set(gcf,'color','white');
   xlabel('x');
   ylabel('y')
   title('Multiscale Approx on Frame');
   legend('Original','Data','Approximation','SVM approximation');
   axis([0 10 -1 2.5]);
   
   
   
   errfull=sum( (yf-yfull).^2/200);
   if errfull>0.1
      fprintf('Tope\n');
      pause
   end;
   errsvm=sum((yf-rx).^2/200);
   absfull=sum(abs(yf-yfull)/200);
   abssvm=sum(abs(yf-rx)/200);
   fprintf('i:%d errfull: %f   errsvm :%f\n',i,errfull,errsvm);
   fprintf('i:%d  absfull: %f   abssvm :%f\n',i,absfull,abssvm);
   errabs(i,:)=[absfull  abssvm];
   
   errl2(i,:)=[errfull errsvm];
     
end;

⌨️ 快捷键说明

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