贝叶斯网络工具箱使用
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
matlab贝叶斯网络工具箱使用
2010-12-18 02:16:44| 分类:默认分类| 标签:bnet 节点叶斯matlab cpd |字号大中小订阅
生成上面的简单贝叶斯网络,需要设定以下几个指标:节点,有向边和CPT表。
给定节点序,则只需给定无向边,节点序自然给出方向。
以下是matlab命令:
N = 4; %给出节点数
dag = false(N,N); %初始化邻接矩阵为全假,表示无边图C = 1; S = 2; R = 3; W = 4; %给出节点序
dag(C,[R,S])=true; %给出有向边C-R,C-S
dag([R,S],W)=true; %给出有向边R-W,S-W
discrete_nodes = 1:N; %给各节点标号
node_sizes = 2*ones(1,N); %设定每个节点只有两个值
bnet = mk_bnet(dag, node_sizes); %定义贝叶斯网络bnet
%bnet结构定义之后,接下来需要设定其参数。
bnet.CPD{C} = tabular_CPD(bnet, C, [0.5 0.5]);
bnet.CPD{R} = tabular_CPD(bnet, R, [0.8 0.2 0.2 0.8]);
bnet.CPD{S} = tabular_CPD(bnet, S, [0.5 0.9 0.5 0.1]);
bnet.CPD{W} = tabular_CPD(bnet, W, [1 0.1 0.1 0.01 0 0.9 0.9 0.99]);
至此完成了手工输入一个简单的贝叶斯网络的全过程。
要画结构图的话可以输入如下命令:
G=bnet.dag;
draw_graph(G);
得到:
如何用matlab贝叶斯网络工具箱画贝叶斯网络图
现在写论文,想用matlab的贝叶斯网络工具箱画个贝叶斯网络图,现在知道如何创建贝叶斯网络,设置条件概率和推理,不知道怎么画图。恳请指教,万分感谢。附阴天下雨洒水车草地湿程序
clear
clc
N=4;
dag=zeros(N,N);
C=1;S=2;R=3;W=4;
dag(C,[R S])=1;
dag(R,W)=1;
dag(S,W)=1;
%指定节点大小二进制离散
discrete_nodes=1:N;
node_sizes=2*ones(1,N);
bnet=mk_bnet(dag,node_sizes);
%bnet=mk_bnet(dag,node_sizes,'names',{'cloudyuu','S','R','W'});
%C=s('cloudyuu')
bnet.CPD{C}=tabular_CPD(bnet,C,[0.5 0.5]);
bnet.CPD{R}=tabular_CPD(bnet,R,[0.8 0.2 0.2 0.8]);
bnet.CPD{S}=tabular_CPD(bnet,S,[0.5 0.9 0.5 0.1]);
bnet.CPD{W}=tabular_CPD(bnet,W,[1 0.1 0.1 0.01 0 0.9 0.9 0.99]);
engine=jtree_inf_engine(bnet);
evidence=cell(1,N);
evidence{W}=1;
evidence{R}=2;
[engine,loglik]=enter_evidence(engine,evidence);
marg=marginal_nodes(engine,C);
marg.T
%p=marg.T(2)
%bar(marg.T)
phemilow发表于2010-4-6 08:43
[b] [url=/redirect.php?goto=findpost&pid=1053623&ptid=876415]1#[/url] [i]phemilow[/i] [/b]
怎么没人知道吗?