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

📄 feature_relation.m

📁 利用支持向量回归进行概率密度估计
💻 M
字号:
function featrue_relation;
t=cputime;
dataset_path='C:\Documents and Settings\songjing\桌面\dataset';
path(path,dataset_path)
load dataset_ionosphere.csv;
sample1=dataset_ionosphere;
sample=norm_row(sample1);

[n,m]=size(sample);
sample=sample+ones(n,m);
rel=zeros(m);
Us=zeros(m);
Uh=zeros(m);
SU=zeros(m);
for i=1:m
   w(i,:)=scores(i,dataset_path,sample);    
end
% w(6,:)
% EP(w(6,:),sample(:,6),0)
val=zeros(n,m);
val_num=n*ones(1,m);
for i=1:m
    val_num(i)=1;
    val(1,i)=sample(1,i);
       for j=2:n
            if any((val(1:val_num(i),i)-ones(val_num(i),1)*sample(j,i))==0)
               j=j;
           else
               val_num(i)=val_num(i)+1;
               val(val_num(i),i)=sample(j,i);
           end
    end
end

sample=sample-ones(n,m);
v_num=val_num;
val=val-ones(n,m);
vall=zeros(n,m);
for i=1:m
     valu= sort(val((1:n),i));
        mod=fix(n/20);
        val_num(i)=20;
        for j=1:20
            aa=valu(((j-1)*mod+1):j*mod);
            t=find(abs(aa-mean(aa))==min(abs(aa-mean(aa))));
            vall(j,i)=aa(t(1));
        end
%     if val_num(i)>20
%         valu= sort(val((1:val_num(i)),i));
%         mod=fix(val_num(i)/10);
%         val_num(i)=20;
%         for j=1:20
%             aa=valu(((j-1)*mod+1):j*mod);
%             t=find(abs(aa-mean(aa))==min(abs(aa-mean(aa))));
%             vall(j,i)=aa(t(1));
%         end
%     else
%         for j=1:val_num(i)
%             vall(j,i)=val(j,i);
%         end
%     end
    
    
    
end
    

% vall(:,[4,3]);
% val_num;
% w(3,:);
% w(4,:);
% sample(:,3);
% sample(:,4);
Rg=zeros(m);
% % for ii=1:m
% %     for jj=1:ii
        ii=4;
        jj=3;
        wxy=biscores([ii,jj],dataset_path,sample);
        sum(wxy);
        entropy=0;
        Hx=0;
        Hy=0;
        k=zeros(20,20);

        if rank(sample(:,[ii,jj]))==1
            Rg(ii,jj)=1;
        else 
        if var(sample(:,ii))*var(sample(:,jj))==0
             Rg(ii,jj)=0;
        else

            for i=1:n
                
                p1=EP(w(ii,:),sample(:,ii),sample(i,ii));
                p2=EP(w(jj,:),sample(:,jj),sample(i,jj));
                Hx=Hx-p1*log(p1);
                Hy=Hy-p2*log(p2);
            end
            Hx
            Hy
            for i=1:n
 % for j=1:20
       
                p1=EP(w(ii,:),sample(:,ii),sample(i,ii));
                p2=EP(w(jj,:),sample(:,jj),sample(i,jj));
    %12=p1*p2
%     if rank(sample(:,[ii,jj]))==1
%         if var(sample(:,ii))==0
%             p12=0;
%         else
%         p12=EP(w(jj,:),sample(:,jj),sample(i,jj));
%         end
%     else
%         if var(sample(:,ii))*var(sample(:,jj))==0
%             p12=0;
%         else
                p12=EP(wxy,sample(:,[ii,jj]),[sample(i,ii),sample(i,jj)]);
%         end
            end
    %z(i)=p12/p1/p2
%     if p1*p2*p12==0
%         entropy=entropy+0;
%     else
            entropy=entropy+p12*log(p12/p1/p2)
            Rg(ii,jj)=entropy/sqrt(Hx*Hy);
%     end
  %  end
        end
        end
 

%k
    

% %     end
% % end
%  for ii=1:m
%     for jj=1:ii
%     vx=ii;
%     vy=jj; 
%     x=sample(:,vx);
%     y=sample(:,vy);
%     xy=sample(:,[vx,vy]);
%     wx=w(vx,:);
%     wy=w(vy,:);
%     wxy=biscores([vx,vy],dataset_path,sample);
%    
% Hvx=0;
% Hvy=0;
% Hvxy=0;
% 
%    for s=1:val_num(vx);
%         a=vall(s,vx);
%         Hvx=Hvx-EP(wx,x,a)*log(abs(EP(wx,x,a)));
%    end
%     
%    for s=1:val_num(vy);
%        b=val(s,vy);
%        Hvy=Hvy-EP(wy,y,b)*log(abs(EP(wy,y,b)));
%        
%    end
%    
%     for s=1:val_num(vx)
%         for t=1:val_num(vy)
%             a=val(s,vx);
%             b=val(t,vy);
%             c=[a,b];
%              if vx==vy
%                  rel(vx,vy)=rel(vx,vy)+EP(wx,x,a)*log(abs(1/EP(wx,x,a)));
%              else
% %                 rel(vx,vy)=rel(vx,vy)+EP(wx,x,a)*log(abs(1/EP(wx,x,a)));   
%                 rel(vx,vy)=rel(vx,vy)+EP(wxy,xy,c)*log((EP(wxy,xy,c)/(EP(wx,x,a)*EP(wy,y,b))));
% %                 Hvxy=Hvxy-EP(wxy,xy,c)*log(abs(EP(wxy,xy,c)));      
%              end
%         end
%     end
%   
% %     Us(vx,vy)=rel(vx,vy)/Hvx;
% %     Uh(vx,vy)=rel(vx,vy)/Hvxy;
% %     SU(vx,vy)=rel(vx,vy)^2/(Hvx+Hvy);
%    % rel(vx,vy);
% % for i=1:n
% % EP(w,x,x(i))
% % end
%    end
%  end
%  
% csvwrite('rel_ionosphere_MI.txt',rel);
% 
% rel=normal_result(rel);
% % Uh=normal_result(Uh);
% % SU=normal_result(SU);
% % Us=normal_result(Us);
% 
 csvwrite('Rg_ionosphere_MI.txt',Rg);
% % csvwrite('rel_ionosphere_Us.txt',Us);
% % csvwrite('rel_ionosphere_Uh.txt',Uh);
% % csvwrite('rel_ionosphere_SU.txt',SU);
cputime-t

⌨️ 快捷键说明

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