资源描述:
《贝叶斯网络matlab》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、Matlab贝叶斯网络建模1FullBNT简介基于Matlab的贝叶斯网络工具箱BNT是kevinp.murphy基于matlab语言开发的关于贝叶斯网络学习的开源软件包,提供了许多贝叶斯网络学习的底层基础函数库,支持多种类型的节点(概率分布)、精确推理和近似推理、参数学习及结构学习、静态模型和动态模型。1.1贝叶斯网络表示BNT中使用矩阵方式表示贝叶斯网络,即若节点i到j有一条弧,则对应矩阵中i,j值为1,否则为0。1.2结构学习算法函数BNT中提供了较为丰富的结构学习函数,都有:1.学习树扩
2、展贝叶斯网络结构的TANC算法learn_struct_tan().2.数据完整条件下学习一般贝叶斯网络结构学习算法表1-1数据完整条件下贝叶斯结构算法算法名称调用函数K2算法learn_struct_k2()贪婪搜索GS(greedysearch)算法earn_struct_gs()爬山HC(hillclimbing)算法learn_struct_hc()…………3.缺失数据条件下学习一般贝叶斯网络结构学习算法表1-2缺失数据条件下贝叶斯结构算法算法名称调用函数最大期望EM(expectati
3、onmaximization)算法learn_struct_EM()MCMC(MarkovChainMonteCarlo)learn_struct_mcmc()…………1.3参数学习算法函数1.BNT中也提供了丰富的参数学习函数,都有:2.完整数据时,学习参数的方法主要有两种:最大似然估计learn_params()和贝叶斯方法bayes_update_params();1.数据缺失时,如果已知网络拓扑结构,用EM算法来计算参数,learn_params_em()。1.4推理机制及推理引擎为了提
4、高运算速度,使各种推理算法能够有效应用,BNT工具箱采用了引擎机制,不同的引擎根据不同的算法来完成模型转换、细化和求解。这个推理过程如下:BNT中提供了多种推理引擎,都有:表1-3BNT推理引擎算法名称调用函数联合树推理引擎jtree_inf_engine()全局联合树推理引擎global_joint_inf_engine()信念传播推理引擎belprop_inf_engine()变量消元推理引擎var_elim_inf_engine()采样传播引擎gibbs_sampling_inf_engi
5、ne2参数学习在BNT中,参数评估程序可以分为4类。分类依据是否目标是通过参数或仅仅一个点的估计来计算贝叶斯全部的后验概率,是否全部的节点是可观察的或者存在数据/隐含变量(局部可观察)。FullobsPartialobsPointlearn_paramslearn_params_emBayesBayes_update_paramsnotyetsupported2.1节点类型Noisy-or节点一个Noisy-or节点就像通常的“或”门一样,但有时父节点的效果将被抑制。受抑制的父节点i的概率用P(
6、i)来表示。一个节点C,有两个父节点A和B,有如下CPD,使用F和T来表达关和开,(在BNT中是1和2)。ABP(C=off)P(C=on)FF1.00.0TFqA)1-q(A)FTq(B)1-q(B)TTq(A)q(B)1-q(A)q(B)Softmax节点神经网络节点使用一个多层感知器实现了从连续父节点向离散子节点的映射。高斯节点将连续值的节点处理成一个离散的情况广义线性模型节点分类/回归树节点2.2最大似然参数估计bnet3=learn_params(bnet2,samples);2.3先
7、验参数分布tabular_CPD(bnet,i,'prior_type','dirichlet','dirichlet_type','unif');B=1B=2B=3A=1111A=2111tabular_CPD(bnet,i,'prior_type','dirichlet','dirichlet_type','BDeu');B=1B=2B=3A=11/61/61/6A=21/61/61/6我们将N/(q*r)放入每个格;N是等效的样本大小,r=
8、A
9、,q=
10、B
11、.这可以按如上面方式创建:tab
12、ular_CPD(bnet,i,'prior_type','dirichlet','dirichlet_type',...'BDeu','dirichlet_weight',10);这里1是等效样本大小,也是先验概率的强度。你可以使用上面面方式更改它,3结构学习ABAB问题:以下两模型结构评分是否相等?表3-1算法概要贝叶斯模型选择算法1.建立模型A->B,生成样本数据2.建立所有可能的结构:(1)AB,(2)B<-A,(3)A->B并计算先验概率3.模型2和模型3为Markovequivale