• 大小: 918KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-20
  • 语言: 其他
  • 标签:

资源简介

互信息(Mutual Information)是信息论里一种有用的信息度量,它可以看成是一个随机变量中包含的关于另一个随机变量的信息量,或者说是一个随机变量由于已知另一个随机变量而减少的不肯定性.综合网上的一些有关互信息的计算,这里一共提供7种不同的程序供大家参考;后期可以继续交流。

资源截图

代码片段和文件信息

function [ I1 I2 ] = KraskovMI( X Y k varargin )
%KraskovMI computes the Kraskov estimator for the mutual information.
%   1. Input: X Y
%             k: nearest neighbour
%             zeroFix (optional): fix the negative estimation to 0 (default
%                                 false);
%
%   univariate: X Y (n x 1) vector
%   multivariate: X Y (n x m) matrix (rows=observations
%   columns=variables)
%
%   2. Output: I1 I2: the two estimator of MI I(1) I(2) (see Ref.)
%
% Ref: Kraskov Alexander Harald St鰃bauer and Peter Grassberger.
%      “Estimating mutual information.“ Physical review E 69.6 (2004): 066138.
%
% Author: Paolo Inglese 
% Last revision: 17-05-2015

if nargin < 3 || nargin > 4
    error(‘Wrong input number.‘);
end
if nargin == 3
    zeroFix = false;
end
if nargin == 4
    if ~islogical(varargin{1})
        error(‘zeroFix must be true or false‘);
    else
        zeroFix = varargin{1};
    end
end
    

if size(X 1) ~= size(Y 1)
    error(‘X and Y must contain the same number of samples‘);
end

nObs = size(X 1);

% compute distance between each sample and its k-th nearest neighbour
dz = zeros(nObs nObs);
dx = zeros(nObs nObs);
dy = zeros(nObs nObs);
for i = 1:nObs
    for j = 1:nObs
        dx(ij) = sqrt(sum((X(i :) - X(j :)).^2));
        dy(ij) = sqrt(sum((Y(i :) - Y(j :)).^2));
        dz(ij) = max([dx(i j) dy(i j)]);
    end
end

% find nx(i) and ny(i)
Eps = zeros(nObs 1);
Nn = zeros(nObs 1);

nx1 = zeros(nObs 1);
ny1 = zeros(nObs 1);
nx2 = zeros(nObs 1);
ny2 = zeros(nObs 1);
for i = 1:nObs
    
    dxSample = dx(i :);
    dxSample(i) = [];
    
    dySample = dy(i :);
    dySample(i) = [];
    
    dzSample = dz(i :);
    dzSample(i) = [];
    [EpsSample NnSample] = sort(dzSample ‘ascend‘);
    Eps(i) = EpsSample(k);
    Nn(i) = NnSample(k);
    
    nx1(i) = sum(dxSample < Eps(i));
    ny1(i) = sum(dySample < Eps(i));
    
    nx2(i) = sum(dxSample <= Eps(i));
    ny2(i) = sum(dySample <= Eps(i));
    
end

% mutual information estimators
I1 = psi(k) - sum(psi(nx1 + 1) + psi(ny1 + 1)) / nObs + psi(nObs);
I2 = psi(k) - 1/k - sum(psi(nx2) + psi(ny2)) / nObs + psi(nObs);

if (zeroFix)
    if I1 < 0
        warning(‘First estimator is negative -> 0‘);
        I1 = 0;
    end
    if I2 < 0
        warning(‘Second estimator is negative -> 0‘);
        I2 = 0;
    end
end

end


 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

    I.A....      3678  2010-06-09 15:35  互信息4\mutual information .m

     文件       1493  2017-04-26 10:07  互信息6\MutualInfo.m

     文件       2499  2015-10-29 09:39  KraskovMI5\KraskovMI.m

     文件       1034  2006-01-06 11:29  互信息\condentropy.m

     文件       1237  2006-01-06 11:29  互信息\condmutualinfo.m

     文件        724  2006-01-06 11:29  互信息\demo_mi.m

     文件        477  2007-08-23 09:49  互信息\elementmexheader.h

     文件        761  2006-01-06 11:29  互信息\entropy.m

     文件       1800  2006-01-06 11:29  互信息\estcondentropy.cpp

     文件      40960  2006-01-06 11:29  互信息\estcondentropy.dll

     文件       8901  2006-01-06 11:29  互信息\estcondentropy.mexglx

     文件      54608  2007-08-23 09:49  互信息\estcondentropy.mexmac

     文件       1249  2006-01-06 11:29  互信息\estentropy.cpp

     文件      40960  2006-01-06 11:29  互信息\estentropy.dll

     文件       3449  2008-03-03 08:34  互信息\estentropy.dsp

     文件        528  2008-03-03 10:22  互信息\estentropy.dsw

     文件       8605  2006-01-06 11:29  互信息\estentropy.mexglx

     文件      53908  2007-08-23 09:49  互信息\estentropy.mexmac

     文件      33792  2008-03-03 10:22  互信息\estentropy.ncb

     文件      49664  2008-03-03 10:22  互信息\estentropy.opt

     文件       1286  2008-03-03 09:10  互信息\estentropy.plg

     文件       1417  2006-01-06 11:29  互信息\estjointentropy.cpp

     文件      40960  2006-01-06 11:29  互信息\estjointentropy.dll

     文件       8638  2006-01-06 11:29  互信息\estjointentropy.mexglx

     文件      54608  2007-08-23 09:49  互信息\estjointentropy.mexmac

     文件       3541  2006-01-06 11:29  互信息\estmutualinfo.cpp

     文件      40960  2006-01-06 11:29  互信息\estmutualinfo.dll

     文件       9623  2006-01-06 11:29  互信息\estmutualinfo.mexglx

     文件      54644  2007-08-23 09:49  互信息\estmutualinfo.mexmac

     文件       4754  2006-01-06 11:29  互信息\estpa.cpp

............此处省略97个文件信息

评论

共有 条评论

相关资源