matlab bnt(贝叶斯网络)实例
#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);
C=1;
P=2;
M=3;
K=4;
%对节点进行排序
dag( C,[P M K] ) = 1;%设置节点的网络结构
discrete_nodes = 1:N;
node_sizes=3*ones(1,N);%设置节点的状态个数,本例的节点状态数均为3,若不规则也可用[2 3 3 3]来描述
draw_graph(dag);%画出网络
bnet=mk_bnet(dag,node_sizes,'names',{'C','P','M','K'},'discrete',discrete_nodes);
bnet.CPD{C}=tabular_CPD(bnet,C,[0.4,0.3,0.3]);
bnet.CPD{P}=tabular_CPD(bnet,P,[0.66,0.19,0.10,0.25,0.63,0.19,0.09,0.18,0.71]);
bnet.CPD{M}=tabular_CPD(bnet,M,[0.69,0.16,0.11,0.20,0.66,0.22,0.11,0.18,0.67]);
bnet.CPD{K}=tabular_CPD(bnet,K,[0.69,0.17,0.13,0.21,0.65,0.19,0.10,0.18,0.68]);
%设置贝叶斯网络,注意和上表的对应情况
%数字小的排在前面,如C和P的条件网络,并且按照C=1,P=1;C=1,P=2;C=1,P=3...排列
engine=jtree_inf_engine(bnet);%确定推理引擎
evidence=cell(1,N);%1*N的空cell类型向量,元素可以是任意类型数据
evidence{P}=input('P='); evidence{M}=input('M='); evidence{K}=input('K=');%在命令窗口输入证据
[engine,loglik]=enter_evidence(engine,evidence);
m=marginal_nodes(engine,C);
Z=m.T(1)
bar(m.T)%画出各个状态的概率分布图
matlab bnt(贝叶斯网络)实例相关推荐
- 贝叶斯网络实例(python)
一些使用python中pgmpy库构建贝叶斯网络的实例 pgmpy: Probabilistic Graphical Models using Python(http://conference.sci ...
- 专家打分法matlab,针对贝叶斯网络中引入专家评价的先验概率评估方法与流程
本发明属于故障诊断领域,具体涉及一种针对贝叶斯网络中引入专家评价的先验概率评估方法. 背景技术: :贝叶斯网络作为故障诊断系统中常见的推理算法,网络根节点先验概率的准确程度直接决定着其能否快速定位第一 ...
- matlab中nsamples 10,贝叶斯网络-使用matlab工具集
提纲: 最近工作: B-COURSE工具学习 BNT研究与学习 BNT相关实验及结果 手动建立贝叶斯网及简单推理 参数学习 结构学习 下一步工作安排 最近工作: 1. B-COURSE 工具学习 B- ...
- 在Python中使用贝叶斯网络的实例
我们在之前的文章中(请见文末给出的参考资料[1])已经介绍了贝叶斯网络的基本原理,以及基于贝叶斯网络进行概率推断(Exact Inference)的消去法.本文将结合一个具体的例子来演示在Python ...
- 【Matlab】利用贝叶斯网络工具箱中的K2算法进行结构学习
下面首先介绍一个结构学习方法,接着利用Matlab中的贝叶斯网络工具箱的K2算法学习该贝叶斯网络的结构.有关贝叶斯网络工具箱的使用,请看[Matlab]贝叶斯网络工具箱简介. 问题:服务器数据传送 现 ...
- 贝叶斯网络算法java,java贝叶斯网络算法.doc
java贝叶斯网络算法.doc 贝叶斯网络提纲:最近工作:B-COURSE工具学习BNT研究与学习BNT相关实验及结果手动建立贝叶斯网及简单推理参数学习结构学习下一步工作安排最近工作:1.B-COUR ...
- 贝叶斯定理 php,朴素贝叶斯及贝叶斯网络简介
贝叶斯网络 贝叶斯网络的定义 贝叶斯网络(Bayesian network),又称信念网络(Belief Network),或有向无环图模型(directed acyclic graphical mo ...
- 多元统计分析、混合效应模型、结构方程模型、极值统计学、贝叶斯网络、copula
生态环境视角下的多元统计分析 1.多元数据分析:概念.定义.及应用困惑; 2.生态环境数据多元统计方法及应用情景; 3.生态环境多元数据分析预处理; 时长:2小时24分钟 结构方程模型(SEM)原理. ...
- 【数据挖掘】贝叶斯网络理论及Python实现
1.理论知识 1.1贝叶斯网络概述 贝叶斯网络(Bayesian Network,BN)作为一种概率图模型(Probabilistic Graphical Model,PGD),可以通过有向无环图 ...
最新文章
- python数据库学习--Mysql
- java中两个Integer类型的值相比较的问题
- 2013ACM多校联合(2)
- Route Flap Dampening
- Oracle发布Solaris 11 for Sparc/x86
- Java socket调用Http协议Get请求
- OpenCV imwrite
- Windows Phone本地数据库(SQLCE):3、[table]attribute(翻译) (转)
- altium导出钻孔文件_[Altium Designer 学习]怎样输出Gerber文件和钻孔文件
- 关于在Win10系统将标注软件labelme打包生成.exe可执行文件
- Kubernetes通过一行shell命令给pod中的zk节点添加权限
- PHP数据结构预热:PHP的迭代器(转)
- 教你彻底卸载Ubuntu双系统,去污不残留
- 六、 抽象类与接口对比
- 网站SEO优化--Flash站优化方法
- html测试报告模板,测试报告模板(完整版).doc
- 2020年CISP线下考试逐渐恢复啦
- 布丰投针问题和蒙特卡洛方法
- 计算机菜单命令后省略号,windows菜单命令项的右边有省略号…表 – 手机爱问
- 技术总监之路——App项目开发流程