To check out this repository please hg clone the following URL, or open the URL using EasyMercurial or your preferred Mercurial client.

Statistics Download as Zip
| Branch: | Revision:

root / _FullBNT / BNT / CPDs / @tabular_CPD / log_prior.m @ 8:b5b38998ef3b

History | View | Annotate | Download (468 Bytes)

1
function L = log_prior(CPD)
2
% LOG_PRIOR Return log P(theta) for a tabular CPD 
3
% L = log_prior(CPD)
4

    
5
switch CPD.prior_type
6
 case 'none',
7
  L = 0;
8
 case 'dirichlet',
9
  D = CPD.dirichlet(:);
10
  L = sum(log(D + (D==0)));
11
 case 'entropic',
12
  % log-prior = log exp(-H(theta)) = sum_i theta_i log (theta_i)
13
  fam_sz = CPD.sizes;
14
  psz = prod(fam_sz(1:end-1));
15
  ssz = fam_sz(end);
16
  C = reshape(CPD.CPT, psz, ssz);
17
  L = sum(sum(C .* log(C + (C==0))));
18
end