📄 feature_relation.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 + -