如何在Bayes Net Toolbox(MATLAB-BNT)中显示DBN的所有CPT?

时间:2013-07-12 16:44:22

标签: matlab

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

1 个答案:

答案 0 :(得分:1)

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

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

  

请注意,“时间贝叶斯网络”将是一个更好的名称   “动态贝叶斯网络”,因为它假设了模型   结构没有改变,但DBN这个词已经变得根深蒂固。我们   通常也假设参数不会改变,即   模型是时不变的。但是,我们总是可以添加额外的隐藏节点   代表当前的“制度”,从而创造模型的混合物   捕获周期性非平稳性。

     

[...]

     

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

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