about summary refs log tree commit diff
path: root/sourcecodes/bnt-master/BNT/learning/learn_params.m
blob: 1bf9c8430369554509d50c6967eb1429cee4f20e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
function bnet = learn_params(bnet, data)
% LEARN_PARAMS Find the maximum likelihood params for a fully observed model
% bnet = learn_params(bnet, data)
%
% data(i,m) is the value of node i in case m (can be a cell array)
%
% We set bnet.CPD{i} to its ML/MAP estimate.
%
% Currently we assume no param tying

% AND THAT EACH DATA POINT IS A SCALAR - no longer assumed

%if iscell(data)
%  data=cell2num(data);
%end
[n ncases] = size(data);
for j=1:n
  e = bnet.equiv_class(j);
  assert(e==j);
  if adjustable_CPD(bnet.CPD{e})
    fam = family(bnet.dag,j);
    %bnet.CPD{j} = learn_params(bnet.CPD{j}, data(fam,:));
    bnet.CPD{j} = learn_params(bnet.CPD{j}, fam, data, bnet.node_sizes, bnet.cnodes);
  end
end