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

📄 modeloutframe.m

📁 这是一个支持向量机的工具
💻 M
字号:
function [G,RSS,Kn,nols]=modeloutframe(v,region,p,p2,ph,id,z,vmax)
% construct linear regression models: Hz=a1*Hx1+a2*Hx2+...+a0*I
% G - models, RSS - residual sums of  squres, Kn - number of parameters
% Kaijun WANG kjwang@mail.xidian.edu.cn, sunac@bigfoot.com, March 2006.

nr=size(region,1);
[nl,nx]=size(p); 
kc=size(ph,2);
u1=v(1);
u2=v(length(v));
for in=1:nr 
  n1=region(in,2);       % start of region Ui
  n2=region(in,5);       % end  of region Ui
  m=n2-n1+1;
  
  % sum of frame elements Hx in region Ui
  for j=1:nx
   q=p(:,j);
   h1(j)=sum(q(n1:n2));  % sum of Hx(j)
   hm(j)=mean(q(n1:n2))/(u2-u1); % meanHx(j)^2
   q=p2(:,j);
   h2(j)=sum(q(n1:n2));  % sum of Hx(j)^2
  end
  
  % sum of cross frame elements HzHx in  region Ui
   for j=1:kc
     q=ph(:,j);
     h12(j)=sum(q(n1:n2)); 
   end
  
% calculate L(i,j) 
  for i=1:nx
    L(i,i)=h2(i)-m*(u2-u1)*hm(i)^2;
   for j=i+1:nx
     k=id(i,j);
     L(i,j)=h12(k)-m*(u2-u1)*hm(i)*hm(j);
     L(j,i)=L(i,j);
   end
  end
 
% solve for im+1 regression coefficients by least-squares
% find coefficients a for model Hz=a1*Hx(i1)+a2*Hx(i2)+ ... +a0*I
   k=0;
   ks=setdiff([1:nx],z); % independent frames
   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 frames Hx(i)
     nk=size(km,1);
   end
   
   for i=1:nk
   k=k+1;
   ki=km(i,:);
   nki=length(ki);
   Lxz=L(ki,z);           % Hx(i)-Hz correlated matrix
   Lxx=L(ki,ki);          % Hx(i)-Hx(j) correlated matrix
   a=Lxx\Lxz;             % im regression coefficients
   c=zeros(nx,1);
   c(ki)=a; 

 % residual sums of  squres for model G (suitable for geometric learning)
   s1=0; s2=0; s3=0;
   for j=1:nki
     q=ki(j);
     s1=s1+L(q,q)*c(q)^2;
     s2=s2+L(q,z)*c(q);
     for l=j+1:nki
       o=ki(l);
       s3=s3+c(q)*c(o)*L(q,o);
     end
   end 
   RSS(k,in)=abs(L(z,z)+s1-2*s2+2*s3);
 
   c(z)=hm(z)-hm*c;      % constant coefficient
   a=[a;c(z)];

   if 0                  % solve regression by invert matrix
   x=p(n1:n2,:);
   Z=x(:,z);
   Y=[x(:,ki) ones(m,1)] ;  
   xv=inv(Y'*Y);       
   a=xv*Y'*Z ; 
   end

   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
   
   end % end i
 end % end im
 
end % end in

⌨️ 快捷键说明

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