以下代码仅显示我的 DBN 的前 2 个时间片:
%% Display CPT
% learnt_bnet was created using mk_dbn()
disp('CPT')
for i=1:length(learnt_bnet_obj.CPD)
disp(['Node #' num2str(i)])
s=struct(learnt_bnet_obj.CPD{i});
s.CPT
end
如何显示所有 CPT?
以下代码仅显示我的 DBN 的前 2 个时间片:
%% Display CPT
% learnt_bnet was created using mk_dbn()
disp('CPT')
for i=1:length(learnt_bnet_obj.CPD)
disp(['Node #' num2str(i)])
s=struct(learnt_bnet_obj.CPD{i});
s.CPT
end
如何显示所有 CPT?
在贝叶斯网络工具箱中,所谓的动态贝叶斯网络实际上只是一个时间贝叶斯网络,我们可以在其中为第一个时间片指定不同的结构:
http://bnt.googlecode.com/svn/trunk/docs/usage_dbn.html:
请注意,“时间贝叶斯网络”比“动态贝叶斯网络”更好,因为假设模型结构没有改变,但 DBN 一词已经根深蒂固。我们通常还假设参数不变,即模型是时不变的。然而,我们总是可以添加额外的隐藏节点来表示当前的“制度”,从而创建模型的混合来捕捉周期性的非平稳性。
[...]
要指定 DBN,我们需要定义切片内拓扑(切片内)、切片间拓扑(两个切片之间)以及前两个切片的参数。(这种两片时间贝叶斯网络通常称为 2TBN。)
这意味着贝叶斯网络工具箱中的 DBN 只有 2 个时间片,这解释了为什么在您给出的示例中只看到 2 个 CPT。