创建贝叶斯网络

博文内容源自http://www.cs.ubc.ca/~murphyk/Bayes/usage.22may00.html#basics

定义贝叶斯网络,必须知道图形结构和相应参数。
考虑下图的图形结构:
这里写图片描述
指定上图的有向无环图,我们创建一个属性矩阵。

clc 
clear 
%建立贝叶斯网络结构
%四个节点号如下:Cloudy = 1, Sprinkler = 2, Rain = 3, WetGrass =
%4.节点号必须按照拓扑顺序编号,即父节点在前子节点在后。
N=4;
dag=zeros(N,N);
C=1;S=2;R=3;W=4;
%若节点存在则为真1,否则为假0
dag(C,[S R])=1;
dag(S,W)=1;
dag(R,W)=1;
%指明有向无环图,必须确定每个节点的尺寸和类型。如果节点是离散点,它的大小可能是节点所能承载状态的个数。因此我们假设所有节点是离散点和二项的
discrete_nodes=1:N;
%每个节点只有两个状态
node_sizes=2*ones(1,N);
%如果节点不是二项的,可以表述如下:
%node_sizes = [4 2 3 5];意味着Cloudy肯能有四个取值,Sprinkler有两个取值...
bnet=mk_bnet(dag,node_sizes,'names',{'cloudy','sprinkler','rain','wetgrass'},'discrete',discrete_nodes);
%参数用CPD表示,(CPD,Conditional Probability Distribution 条件概率)。
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]);
% figure
draw_graph(dag);
结构图

这里写图片描述

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值