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

📄 framekernelex1.m

📁 关于svm的例程
💻 M
字号:
%
% Example of SVM approximation  wavelet frame kernel
% is compared to Gaussian kernel
%
% The conclusion of this test is that 
% both kernels seem to give equivalent results.
%
% 10/12/2000 AR -PSI Insa de Rouen

clear all
close all

itermax=1;
erreur=zeros(itermax,3);
for i=1:itermax
    N=100;
    x=sort([0.01; 9.99;10*rand(N-2,1)]);
    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;
    
    x1=x;
    x2=x;
    %--------------------------SVM Approximation -----------------------
    
    %-------------------------------------------------------------------%
    %                          Frame Kernel                             %
    %-------------------------------------------------------------------%
    n=200; 
    t=linspace(0,10,n)';
    uo=1;
    a=2^0.25;
    bord1=0;
    bord2=10;
    dilation=[-8 0 5];
    framematrix=framewav(t,dilation,uo,a,bord1,bord2);
    dual=dualframe(framematrix,t);
    C = 10;  lambda = 0.000001; 
    epsilon = .1;
    kerneloption = 'numerical';
    kernel='frame';
    [xsup,ysup,w,w0] = svmreg(x,y,C,epsilon,kernel,kerneloption,lambda,1,[],framematrix,t,dual);
    fprintf('Support Vector Processed...');
    rx= svmval(xf,xsup,w,w0,kernel,kerneloption,framematrix,t,dual);
   
  %------------------------------------------
  %     regulation networks
  %------------------------------------------
   lambda2=15;
   x1=x;
   x2=x;
   kernel='numerical';
   K=kernelframe(x1,kernel,x2,framematrix,t);
   T=phispan(x,'unite');
   x1=xf;
   [c,d]=regsolve(K,T,y,lambda2);
   K=kernelframe(x1,kernel,x2,framematrix,t);
   T=phispan(x1,'unite',dilation,uo,a,bord1,bord2);  
   f1=K*c+T*d;
    
    
    %-------------------------------------------------------------------%
    %                            SVM gaussian kernel                    %
    %-------------------------------------------------------------------%
    
    C = 10;  lambda =1e-7 ; 
    epsilon = .175;
    kerneloption = 0.15;
    kernel='gaussian';
    [xsup,ysup,w,w0] = svmreg(x,y,C,epsilon,kernel,kerneloption,lambda,0);
    rx1= svmval(xf,xsup,w,w0,kernel,kerneloption);
    
    
    %--------------------Plotting the multiresolution Results-----------------------
   % figure
    %plot(x,y,'k+',xf,yf,'r',xf,rx,'b',xf,rx1,'g',xf,f1,'m');
    %legend('data','Original' ,'Wavelet','Gaussian','Regnet');
    errfram=sum( (yf-rx).^2/200);
    errgauss=sum((yf-rx1).^2/200);
    errreg=sum((yf-f1).^2/200);
    erreur(i,:)=[errfram errgauss errreg];
    fprintf('i:%d frame: %f   gaussian :%f regnet: %f \n',i,errfram,errgauss,errreg);
end;



⌨️ 快捷键说明

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