贝叶斯网络工具箱使用

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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]

怎么没人知道吗?

相关文档
最新文档