online2.m
来自「贝叶斯网络的matlab实现。可以创建贝叶斯网络、训练模型」· M 代码 · 共 34 行
M
34 行
N = 1; % regular HMM
Q = 2;
ss = 2;
hnodes = 1;
onodes = 2;
rand('state', 0);
randn('state', 0);
O = 2;
discrete_obs = 1;
bnet = mk_chmm(N, Q, O, discrete_obs);
ns = bnet.node_sizes_slice;
engine = hmm_inf_engine(bnet, onodes);
T = 4;
ev = cell(ss,T);
ev(onodes,:) = num2cell(sample_discrete([0.5 0.5], N, T));
engine = dbn_init_bel(engine);
for t=1:T
if t==1
[engine, ll(t)] = dbn_update_bel1(engine, ev(:,t));
else
[engine, ll(t)] = dbn_update_bel(engine, ev(:,t-1:t));
end
% one-step ahead prediction
lag = 1;
engine2 = dbn_predict_bel(engine, lag);
marg = dbn_marginal_from_bel(engine2, 1)
marg = dbn_marginal_from_bel(engine2, 2)
end
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?