Mercurial > hg > camir-ismir2012
view toolboxes/FullBNT-1.0.7/bnt/CPDs/@generic_CPD/learn_params.m @ 0:cc4b1211e677 tip
initial commit to HG from
Changeset:
646 (e263d8a21543) added further path and more save "camirversion.m"
author | Daniel Wolff |
---|---|
date | Fri, 19 Aug 2016 13:07:06 +0200 |
parents | |
children |
line wrap: on
line source
function CPD = learn_params(CPD, fam, data, ns, cnodes) % LEARN_PARAMS Compute the maximum likelihood estimate of the params of a generic CPD given complete data % CPD = learn_params(CPD, fam, data, ns, cnodes) % % data(i,m) is the value of node i in case m (can be cell array). % We assume this node has a maximize_params method. %error('no longer supported') % KPM 1 Feb 03 if 1 ncases = size(data, 2); CPD = reset_ess(CPD); % make a fully observed joint distribution over the family fmarginal.domain = fam; fmarginal.T = 1; fmarginal.mu = []; fmarginal.Sigma = []; if ~iscell(data) cases = num2cell(data); else cases = data; end hidden_bitv = zeros(1, max(fam)); for m=1:ncases % specify (as a bit vector) which elements in the family domain are hidden hidden_bitv = zeros(1, max(fmarginal.domain)); ev = cases(:,m); hidden_bitv(find(isempty(evidence)))=1; CPD = update_ess(CPD, fmarginal, ev, ns, cnodes, hidden_bitv); end CPD = maximize_params(CPD); end