svrerror.m
上传用户:xfjled
上传日期:2007-05-06
资源大小:150k
文件大小:1k
源码类别:

matlab例程

开发平台:

Matlab

  1. function err = svrerror(trnX,tstX,tstY,ker,beta,bias,loss,e)
  2. %SVRERROR Calculate SVR Error
  3. %
  4. %  Usage: err = svrerror(trnX,tstX,tstY,ker,beta,bias,loss,e)
  5. %
  6. %  Parameters: trnX   - Training inputs
  7. %              tstX   - Test inputs
  8. %              tstY   - Test targets
  9. %              ker    - kernel function
  10. %              beta   - Difference of Lagrange Multipliers
  11. %              bias   - bias
  12. %              loss   - loss function
  13. %              e      - e insensitive 
  14. %
  15. %  Author: Steve Gunn (srg@ecs.soton.ac.uk)
  16.   if (nargin < 6 | nargin > 8) % check correct number of arguments
  17.     help svrerror
  18.   else
  19.     if (nargin < 8), e = 0.0;, end
  20.     if (nargin < 7), loss = 'eInsensitive';, end
  21.     n = size(trnX,1);
  22.     m = length(tstY);
  23.     H = zeros(m,n);  
  24.     for i=1:m
  25.       for j=1:n
  26.         H(i,j) = svkernel(ker,tstX(i,:),trnX(j,:));
  27.       end
  28.     end
  29.     errvec = (H*beta - tstY+bias);
  30.     switch lower(loss)
  31.       case 'einsensitive',
  32.         errvec = abs(errvec) - e;
  33.         err = mean(errvec.*(errvec > 0));
  34.       case 'quadratic',
  35.         err = mean(errvec.*errvec);
  36.       otherwise, disp('Error: Unknown Loss Functionn');
  37.     end  
  38.   end