- 如下图所示,贝叶斯网络结构有四个节点,并且每个节点的概率已经给出,下面将使用mtaltb代码进行该贝叶斯网络的构建并讲解每一行代码的意思,帮助零基础读者快速入门。
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/f27006cb79eeebe4fbfe42c10d5c43ae.gif)
- 1:使用矩阵表示该图结构
N = 4 ; // 代表图中有四个节点
dag = zeros(N,N); // 创建4X4矩阵,用来表示图的连通情况,可看数据结构有向图表示的相关内容
C=1;S=2;R=3;W=4; //指定节点的顺序
dag(C,[S,R]) = 1 ; //1代表连通 该行代码表示C节点可到达S、R节点
dag([S,R],W) = 1 ; //该行代码表示S、R节点可到达W节点
discrete_nodes = 1:N ; //离散化节点
node_sizes = [2,2,2,2]; //该行代码代表每个节点有True和False两个判别方式
bnet = mk_bnet(dag,node_sizes); //创建贝叶斯结构
bnet.CPD{C} = tabular_CPD(bnet,C,[0.5,0.5]) ; // 设置C节点的参数
bnet.CPD{S} = tabular_CPD(bnet,S,[0.5,0.9,0.5,0.1]) ; //设置S节点的参数
bnet.CPD{R} = tabul