以下代码仅显示我的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?
答案 0 :(得分:1)
在贝叶斯网络工具箱中,所谓的动态贝叶斯网络实际上只是一个时间贝叶斯网络,我们可以在其中为第一个时间片指定不同的结构:
http://bnt.googlecode.com/svn/trunk/docs/usage_dbn.html:
请注意,“时间贝叶斯网络”将是一个更好的名称 “动态贝叶斯网络”,因为它假设了模型 结构没有改变,但DBN这个词已经变得根深蒂固。我们 通常也假设参数不会改变,即 模型是时不变的。但是,我们总是可以添加额外的隐藏节点 代表当前的“制度”,从而创造模型的混合物 捕获周期性非平稳性。
[...]
要指定DBN,我们需要定义片内拓扑(在 切片),切片间拓扑(在两个切片之间),以及 前两个切片的参数。 (这样的两片时间 贝叶斯网通常被称为2TBN。)
这意味着贝叶斯网络工具箱中的DBN只有2个时间片,这就解释了为什么在您给出的示例中只能看到2个CPT。