backfitting.m

来自「各种SVM分类算法」· M 代码 · 共 51 行

M
51
字号
function C=backfitting(y,kernelmatrix,lambda,MaxIter,verbose)

% USAGE
%
% C=backfitting(y,kernelmatrix,lambda,MaxIter,verbose)
% 
% 

if nargin < 5
    verbose=0;
end
if nargin<4;
    MaxIter=200;
end;
if nargin<2
    error('Not enough input variables');
end;

[n,n1,nbspace]=size(kernelmatrix);

C=zeros(n,nbspace); % matrices des coefficients
Cold=ones(n,nbspace);
iter=0;
%keyboard
while norm(C-Cold,inf)>1e-6 & iter<MaxIter
    
 
    
    Cold=C;
  
    for i=1:nbspace
        
        yaux=y;
        for k=1:nbspace
            if k~=i
                yaux=yaux-kernelmatrix(:,:,k)*C(:,k);
            end;
        end;
        C(:,i)=regsolve(kernelmatrix(:,:,i),[],yaux,lambda(i));
    end;  
% close all
%    plot(kernelmatrix(:,:,1)*C(:,1),'r'),hold on, plot(kernelmatrix(:,:,2)*C(:,2),'b')
   
    iter=iter+1; 
    if verbose
    fprintf('%d..',iter);
    end;
end;
if verbose
fprintf('\n');
end;

⌨️ 快捷键说明

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