intmutualinf.m

来自「UMDA. a kind of estimation of distributi」· M 代码 · 共 38 行

M
38
字号
function[MI]=MutInf1(NumbVar,Prob,f)

% NumbVar: Cantidad de variables
% Prob: Probabilidad conjunta

BivProb=zeros(NumbVar,NumbVar,4);
MI=zeros(NumbVar,NumbVar);

%Se Calculan las probabilidades bivariadas
% La suma de dos probabilidades bivariadas es la univariada p(x,0)+p(x,1)


 for a=1:size(f,1)
  i=f(a);
      bin=binconvert(i-1,NumbVar);
      for j=1:NumbVar
       for k=j+1:NumbVar
        BivProb(j,k,2*bin(j)+bin(k)+1)=BivProb(j,k,2*bin(j)+bin(k)+1)+Prob(i); 
       end
      end
 end
for j=1:NumbVar
  for k=j+1:NumbVar
   for a=0:1
     for b=0:1
      Univ1=BivProb(j,k,2*a+1)+BivProb(j,k,2*a+2);
      Univ2=BivProb(j,k,b+1)+BivProb(j,k,b+2);

      if Univ1>0 & Univ2>0
        MI(j,k)=MI(j,k)+BivProb(j,k,2*a+b+1)*log(BivProb(j,k,2*a+b+1)/Univ1*Univ2);
      end              

     end 
   end
    MI(k,j)=MI(j,k);
  end
end
   

⌨️ 快捷键说明

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