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

📄 ise.m

📁 Non-parametric density estimation
💻 M
字号:
function v = ise(p,q,type)
%
% ise(p,q [,'type'])  -- estimate the integrated squared error between 
%                        two densities p,q
%   type:
%    [double] -- use "epsilon-exact" product with this value for epsilon
%    'p','q'  -- use the samples at p (or at q)
%    'pq'     -- use both samples at p & q
%
if (nargin < 3) type = 0; end;
if (isa(type,'double'))  v = iseEpsilon(p,q,type);
else
  switch type
    % Three different monte-carlo estimates (different proposals)
    case {'p'}, x = getPoints(p); quo = evaluate(p,x);
                v = mean( (evaluate(p,x) - evaluate(q,x)).^2 ./ quo);
    case {'q'}, x = getPoints(q); quo = evaluate(q,x);
                v = mean( (evaluate(p,x) - evaluate(q,x)).^2 ./ quo);
    case {'pq'},x = [getPoints(p),getPoints(q)]; quo = .5*(evaluate(p,x)+evaluate(q,x));
                v = mean( (evaluate(p,x) - evaluate(q,x)).^2 ./ quo);
    % and one (possible) estimate from Mark Girolami
    case {'abs'},   eval1 = evaluate(p,p); eval2 = evaluate(q,p);
                    if (min(eval2) == 0) v = inf;
                    else v = getWeights(p) * (eval1 .* abs(log(eval1./eval2)))';
                    end;

  end;
end;

⌨️ 快捷键说明

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