⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dhmm_inf_engine.m

📁 贝叶斯网络的matlab实现。可以创建贝叶斯网络、训练模型
💻 M
字号:
function engine = dhmm_inf_engine(bnet, onodes)
% DHMM_INF_ENGINE Inference engine for discrete DBNs which uses the forwards-backwards algorithm.
% engine = dhmm_inf_engine(bnet, onodes)
%
% 'onodes' specifies which nodes are observed; these must be leaves, and can be discrete or continuous.
% The remaining nodes are all hidden, and must be discrete.
% The DBN is converted to an HMM, with a single meganode, but which may have factored obs.

ss = length(bnet.intra);
hnodes = mysetdiff(1:ss, onodes);
evidence = cell(ss, 2);
ns = bnet.node_sizes;
Q = prod(ns(hnodes));
tmp = dpot_to_table(compute_joint_pot(bnet, hnodes, evidence));
engine.startprob = reshape(tmp, Q, 1);
tmp = dpot_to_table(compute_joint_pot(bnet, [hnodes hnodes+ss], evidence));
engine.transprob = mk_stochastic(reshape(tmp, Q, Q));
engine.obsprob = cell(1, length(onodes));
for i=1:length(onodes)
  tmp = dpot_to_table(compute_joint_pot(bnet, [hnodes onodes(i)], evidence));
  O = ns(onodes(i));
  engine.obsprob{i} = mk_stochastic(reshape(tmp, Q, O));
end

% This is where we will store the results between enter_evidence and marginal_nodes
engine.gamma = [];
engine.xi = [];

engine.onodes = onodes;
engine.hnodes = hnodes;
engine.maximize = [];

engine = class(engine, 'dhmm_inf_engine', inf_engine(bnet));

⌨️ 快捷键说明

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