#matlab bnt下的贝叶斯网络实例
#贝叶斯网络实例#详细教程
1.向matlab中添加FULLBNT
参照链接:https://blog.csdn.net/moodytong/article/details/8122327
采用MATLAB语言编制的贝叶斯网络工具箱(Bayesian Networks Toolbox,BNT)可实现贝叶斯网络结构学习、参数学习、推理和构建贝叶斯分类器,此工具箱在贝叶斯学习编 程方面非常灵活。
官方主页:http://www.cs.ubc.ca/~murphyk/Software/BNT/bnt.html
官方下载:http://www.cs.ubc.ca/~murphyk/Software/BNT/FullBNT-1.0.4.zip
原文链接:http://hi.baidu.com/zgyz/blog/item/2d3627f415c7fbe77709d763.html
贝叶斯网络:http://www.cs.ubc.ca/~murphyk/Software/BNT/bnt.html
语音工具箱:http://www.ee.ic.ac.uk/hp/staff/dmb/voicebox/voicebox.html
1、解压FullBNT-1.0.4.zip,将整个目录FullBNT-1.0.4复制到MATLAB的安装目录的TOOLBOX目录下,如D:\MATLAB7\toolbox
2、打开Matlab,在MATLAB命令窗口中输入以下命令:
>> cd D:\MATLAB7\toolbox\FullBNT-1.0.4
>> addpath(genpathKPM(pwd))
>>
将TOOLBOX下新加的BNT工具箱加到MATLAB的搜索路径中去。
添加BNT工具箱的MATLAB的搜索路径也可采用如下指令
>> addpath(genpath(‘D:\MATLAB7\toolbox\FullBNT-1.0.4’))
>>
3、为了永久保存上面的路径,以免下次重启MATLAB时重新添加,在MATLAB命令窗口下使用下面的命令:
>> savepath
>>
4、检验是否成功设置的方法:
在命令窗口中输入以下命令:which test_BNT.m(可以为所加工具箱的任一个M文件名称),如果显示正确,就说明上面的设置成功。
>> which test_BNT.m
D:\MATLAB7\toolbox\FullBNT-1.0.4\BNT\test_BNT.m
>>
2.仿真实例
使用简单的例子,其中节点选取多个状态(三个),构造父节点的先验概率,以及子节点的条件概率,并解释matlab bnt代码:
以下是构建的简单贝叶斯网络结构图。其中攻击能力节点的状态分为:高、中、低;载弹量节点的状态分为:多、中、少;目标类型的节点状态分为:战斗机、轰炸机、导弹;
攻击能力的先验概率:攻击能力为高的概率为30%,攻击能力为中等的概率为30%,攻击能力为低的概率为40%。
攻击能力的条件概率见下图(注意这个条件概率和大家理解的相反,一般人们的逻辑是弹载量为多,则攻击能力为高的概率为多少;但这个正好相反)。
在编写程序时用1,2,3来代表对应节点状态的少,中,多。接下来就可以进行bnt程序的编写了。
N = 4;%节点数量
dag = zeros(N,N)