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

📄 modeloutdata.m

📁 这是一个支持向量机的工具
💻 M
字号:
function [G,RSS,Kn,nols]=modeloutdata(region,X,ph,id,z,vmax)
% construct linear regression models: z=a1*x1+a2*x2+ ... +c
% G - models, RSS - residual sums of  squres, Kn - number of parameters
% Kaijun WANG kjwang@mail.xidian.edu.cn, sunac@bigfoot.com, May 2006. 

nr=size(region,1);
[nl,nx]=size(X); 
for in=1:nr
  tu=[region(in,2):region(in,5)]';
  n=length(tu);          % n points in the region
  
  % sum of data points in the region
  for j=1:nx
   x=X(tu,j);
   h1(j)=sum(x);         % sum of x(j)
   hm(j)=mean(x);        % mean x(j) 
   k=id(j,j); 
   x=ph(tu,k);
   h2(j)=sum(x);         % sum of x(j)^2
  end
  
  % calculate L(i,j) 
  for i=1:nx
    L(i,i)=h2(i)-n*hm(i)^2;
    for j=i+1:nx
       k=id(i,j); 
       x=ph(tu,k);   
       h12=sum(x); 
       L(i,j)=h12-n*hm(i)*hm(j);
       L(j,i)=L(i,j);
    end
   end
 
 %  solve for im+1 regression coefficients by least-squares
 % find coefficients ai for model z=a1*x1+a2*x2+ ... +a0*I
   k=0;
   ks=setdiff([1:nx],z); % independent variables
   if vmax=='allcoef'
      vm=1;
   elseif vmax==0 
      vm=length(ks); 
   elseif vmax>0 
      vm=vmax;
   end
   
 for im=1:vm
   if vmax=='allcoef'
     km=ks;
     nk=size(km,1);
   else
     km=combntns(ks,im); % combinations of x(i)
     nk=size(km,1);
   end

   for i=1:nk   
   k=k+1;
   ki=km(i,:);
   Lxz=L(ki,z);          % x(i)-z correlated matrix
   Lxx=L(ki,ki);         % x(i)-x(j) correlated matrix
   a=Lxx\Lxz;            % im regression coefficients
   c=zeros(nx,1);
   c(ki)=a; 

 % residual sums of  squres for model G (same as next method)
 if 0  
   s1=0; s2=0; s3=0;
   for j=1:nx
     s1=s1+L(j,j)*c(j)^2;
     s2=s2+L(j,z)*c(j);
     for l=j+1:nx
       s3=s3+c(j)*c(l)*L(j,l);
     end
   end 
   RSS(k,in)=L(z,z)+s1-2*s2+2*s3;       
 end
 
   c(z)=hm(z)-hm*c;      % constant coefficient
   a=[a;c(z)];

   x=X(tu,:);
   Z=x(:,z);
   Y=[x(:,ki) ones(n,1)] ; 
   
% solve linear regression by invert matrix, same as above a=Lxx\Lxz
% [a2,res2,sigma]=mregressReina(Z,x(:,ki),1);
% this subfunction is same as: xv=inv(Y'*Y); a=xv*Y'*Z;  

   c([ki z])=a;
   G(k,:,in)=c';         % coefficients of  model G
   
   x=find(ki>nx/2);      % find polynomial items
   nols(k,in)=length(x);
   Kn(k,in)=im+2;        % number of parameters
   Z_hat = Y *a;         %  fitted regression values
   residuals = Z - Z_hat;
   % residual sums of squres
   RSS(k,in)=norm(residuals)^2;
  end % end i
 end % end im
 
end

⌨️ 快捷键说明

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