wolffd@0: function CPD = learn_params(CPD, fam, data, ns, cnodes) wolffd@0: %function CPD = learn_params(CPD, local_data) wolffd@0: % LEARN_PARAMS Compute the ML/MAP estimate of the params of a tabular CPD given complete data wolffd@0: % CPD = learn_params(CPD, local_data) wolffd@0: % wolffd@0: % local_data(i,m) is the value of i'th family member in case m (can be cell array). wolffd@0: wolffd@0: local_data = data(fam, :); wolffd@0: if iscell(local_data) wolffd@0: local_data = cell2num(local_data); wolffd@0: end wolffd@0: counts = compute_counts(local_data, CPD.sizes); wolffd@0: switch CPD.prior_type wolffd@0: case 'none', CPD.CPT = mk_stochastic(counts); wolffd@0: case 'dirichlet', CPD.CPT = mk_stochastic(counts + CPD.dirichlet); wolffd@0: otherwise, error(['unrecognized prior ' CPD.prior_type]) wolffd@0: end