update_ess.m

来自「贝叶斯matlab程序设计算法」· M 代码 · 共 41 行

M
41
字号
function CPD = update_ess(CPD, fmarginal, evidence, ns, cnodes, hidden_bitv)% UPDATE_ESS Update the Expected Sufficient Statistics of a hhmmF node.% function CPD = update_ess(CPD, fmarginal, evidence, ns, cnodes, hidden_bitv)%% We assume the F nodes are always hidden% Figure out the node numbers associated with each parentdom = fmarginal.domain;%Fself = dom(end); %Fbelow = dom(CPD.Fbelow_ndx);Qself = dom(CPD.Qself_ndx);Qps = dom(CPD.Qps_ndx);Qsz = CPD.Qsz;Qpsz = CPD.Qpsz;if all(hidden_bitv(Qps)) % we assume all are hidden or all are observed  k_ndx = 1:Qpsz;  eff_Qpsz = Qpsz;else  k_ndx = subv2ind(Qpsz, cat(1, evidence{Qps}));  eff_Qpsz = 1;endif hidden_bitv(Qself)  j_ndx = 1:Qsz;  eff_Qsz = Qsz;else  j_ndx = evidence{Qself};  eff_Qsz = 1;end% Fmarginal(Qps, Q, Fbelow, F)fmarg = myreshape(fmarginal.T, [eff_Qpsz eff_Qsz  2 2]);counts = zeros(Qpsz, Qsz, 2);%counts(k_ndx, j_ndx, :) = sum(fmarginal.T(:, :, :, :), 3); % sum over Fbelowcounts(k_ndx, j_ndx, :) = fmarg(:, :, 2, :); % Fbelow = 2CPD.sub_CPD_term = update_ess_simple(CPD.sub_CPD_term, counts);

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?