about summary refs log tree commit diff
path: root/sourcecodes/bnt-master/BNT/CPDs/@tabular_CPD/learn_params.m
blob: 970da8b18fa0714b8f6b4e12787930603da5687d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
function CPD = learn_params(CPD, fam, data, ns, cnodes)
%function CPD = learn_params(CPD, local_data)
% LEARN_PARAMS Compute the ML/MAP estimate of the params of a tabular CPD given complete data
% CPD = learn_params(CPD, local_data)
%
% local_data(i,m) is the value of i'th family member in case m (can be cell array).

local_data = data(fam, :); 
if iscell(local_data)
  local_data = cell2num(local_data);
end
counts = compute_counts(local_data, CPD.sizes);
switch CPD.prior_type
 case 'none', CPD.CPT = mk_stochastic(counts); 
 case 'dirichlet', CPD.CPT = mk_stochastic(counts + CPD.dirichlet); 
 otherwise, error(['unrecognized prior ' CPD.prior_type])
end