1

以下代码仅显示我的 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?

4

1 回答 1

1

在贝叶斯网络工具箱中,所谓的动态贝叶斯网络实际上只是一个时间贝叶斯网络,我们可以在其中为第一个时间片指定不同的结构:

http://bnt.googlecode.com/svn/trunk/docs/usage_dbn.html

请注意,“时间贝叶斯网络”比“动态贝叶斯网络”更好,因为假设模型结构没有改变,但 DBN 一词已经根深蒂固。我们通常还假设参数不变,即模型是时不变的。然而,我们总是可以添加额外的隐藏节点来表示当前的“制度”,从而创建模型的混合来捕捉周期性的非平稳性。

[...]

要指定 DBN,我们需要定义切片内拓扑(切片内)、切片间拓扑(两个切片之间)以及前两个切片的参数。(这种两片时间贝叶斯网络通常称为 2TBN。)

这意味着贝叶斯网络工具箱中的 DBN 只有 2 个时间片,这解释了为什么在您给出的示例中只看到 2 个 CPT。

于 2013-08-25T16:14:57.653 回答