train.m

来自「是一个用MATLAB编的一个系统」· M 代码 · 共 72 行

M
72
字号
function net = train(tutor, x, y, C, kernel, zeta, net)



if size(y, 2) ~= 1 | ~isreal(y)

   error('y must be a real double precision column vector');

end

if size(y, 1) ~= size(x, 1)

   error('x and y must have the same number of rows');

end

if nargin == 4 & isa(C, 'svc')

   net    = C;
   C      = getC(net);
   kernel = getkernel(net);
   zeta   = getzeta(net);
   alpha  = abs(getw(net));
   bias   = getbias(net);

else

   if nargin < 4

      C = Inf;

   end

   if nargin < 5

      kernel = linear;

   end

   if nargin < 6

      zeta = ones(size(y));

   end

   if nargin < 7

      alpha = zeros(size(y));
      bias  = 0;

   else

      old_C = getC(net);
      alpha = abs(getw(net));
      bias  = getbias(net);

      if C ~= Inf 

         alpha = alpha*C/old_C;
         bias  = bias*C/old_C;

      end

   end

end

net = smosvctrain(tutor, x, y, C, kernel, zeta, alpha, bias);



⌨️ 快捷键说明

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