⑴ 如何在matlab2014a中添加贝叶斯网络工具箱
第一步:下载贝叶斯抄网络工具箱
第二步:解压压缩包
第三步:将工具箱中bnt文件夹复制到matlab工具箱文件夹中(D:\Program Files\MATLAB\R2014a\toolbox)
第四步:打开matlab2014a
贝叶斯网络是处理不确定信息做有效的表示方法之一。其关键的特征之一是提供了把整个概率分布分解成几个局部分布的方法,网络的拓扑结构表明如何从局部的概率分布获得完全的联合概率分布。
贝叶斯网络适合于对领域知识具有一定了解的情况,至少对变量间的依赖关系较清楚。否则直接从数据中学习贝叶斯网络结构复杂性极高(随节点的增加成指数级增长)
⑵ 如何用matlab的BNT软建立一个贝叶斯网络及条件概率表
对上述信息建立贝叶斯网络,代码如下
[plain]view plainprint?
N=8;
dag=zeros(N,N);
A=1;S=2;T=3;L=4;B=5;E=6;X=7;D=8;
dag(A,T)=1;
dag(S,[LB])=1;
dag([TL],E)=1;
dag(B,D)=1;
dag(E,[XD])=1;
discrete_nodes=1:N;
node_sizes=2*ones(1,N);
bnet=mk_bnet(dag,node_sizes,'names',{'A','S','T','L','B','E','X','D'},'discrete',discrete_nodes);
bnet.CPD{A}=tabular_CPD(bnet,A,[0.99,0.01]);
bnet.CPD{S}=tabular_CPD(bnet,S,[0.5,0.5]);
bnet.CPD{T}=tabular_CPD(bnet,T,[0.99,0.95,0.01,0.05]);
bnet.CPD{L}=tabular_CPD(bnet,L,[0.99,0.9,0.01,0.1]);
bnet.CPD{B}=tabular_CPD(bnet,B,[0.7,0.4,0.3,0.6]);
bnet.CPD{E}=tabular_CPD(bnet,E,[1,0,0,0,0,1,1,1]);
bnet.CPD{X}=tabular_CPD(bnet,X,[0.95,0.02,0.05,0.98]);
bnet.CPD{D}=tabular_CPD(bnet,D,[0.9,0.2,0.3,0.1,0.1,0.8,0.7,0.9]);
draw_graph(dag)
说明:有N=8个节点,建立有向无环图dag,并且这些点的值是离散的,这里1=False 2=True,node_sizes给出了所有状态
mk_bnet中names后的{}里面给出了各个节点的别名
利用tabular_CPD设置各个变量的边缘概率,对于A和S,定义顺序是False True;对于T、L和B这类,顺序是FF FT TF TT;对于D这类,顺序是FFF FFT FTF FTT TFF TFT TTF TTT
简单检查下A的概率
[plain]view plainprint?
engine=jtree_inf_engine(bnet);
evidence=cell(1,N);
[engine,loglik]=enter_evidence(engine,evidence);
m=marginal_nodes(engine,A);
m.T()
现在可以给定任意条件,然后计算概率了。
[plain]view plainprint?
例如要计算任意组合条件下,个体分别得Tub、lungcancer和bronchitis的概率。下面代码计算了P(T=True|A=False,S=True,X=True,D=False)的概率
[plain]view plainprint?
engine=jtree_inf_engine(bnet);
evidence=cell(1,N);
evidence{A}=1;
evidence{S}=2;
evidence{X}=2;
evidence{D}=1;
[engine,loglik]=enter_evidence(engine,evidence);
m=marginal_nodes(engine,T);
m.T(2)
⑶ bnt matlab 怎么做mcmc有向无环贝叶斯网络结构学习
基于matlab的贝叶斯网络工具箱BNT是kevin p.murphy基于matlab语言开发的关于贝叶斯网络学习的开源包,提供了许多贝叶斯网络学习的底层基础函数库,支持多种类型的节点(概率分布)、精确推理和近似推理、参数学习及结构学习、静态模型和动态模型。
贝叶斯网络表示:BNT中使用矩阵方式表示贝叶斯网络,即若节点i到j有一条弧,则对应矩阵中(i,j)值为1,否则为0。
结构学习算法函数:BNT中提供了较为丰富的结构学习函数,都有:
学习树扩展贝叶斯网络结构的TANC算法learn_struct_tan().
2. 数据完整条件下学习一般贝叶斯网络结构的K2算法learn_struct_k2()、贪婪搜索GS(greedy search)算法learn_struct_gs()和爬山HC(hill climbing)算法learn_struct_hc()等。
3. 缺失数据条件下学习一般贝叶斯网络结构的最大期望EM(expectation maximization)算法learn_struct_EM()和马尔科夫链蒙特卡罗MCMC(Markov Chain Monte Carlo)learn_struct_mcmc()算法等。
参数学习算法函数:BNT中也提供了丰富的参数学习函数,都有:
1. 完整数据时,学习参数的方法主要有两种:最大似然估计learn_params()和贝叶斯方法bayes_update_params();
2. 数据缺失时,如果已知网络拓扑结构,用EM算法来计算参数,倘若未知网络拓扑结构,使用结构最大期望SEM(structure EM)算法learn_struct_SEM()。
推理机制及推理引擎:为了提高运算速度,使各种推理算法能够有效应用,BNT工具箱采用了引擎机制,不同的引擎根据不同的算法来完成模型转换、细化和求解。这个推理过程如下:
BNT中提供了多种推理引擎,都有:
1. 联合树推理引擎jtree_inf_engine();
2. 全局联合树推理引擎global_joint_inf_engine();
3. 信念传播推理引擎 belprop_inf_engine();
4. 变量消元推理引擎 var_elim_inf_engine().
⑷ 如何使用贝叶斯网络工具箱
第一步:下载贝叶斯网络工具箱
第二步:解压压缩包
第三步:将工具箱中bnt文件夹复制到matlab工具箱文件夹中
第四步:打开
⑸ 求助,怎样用贝叶斯网络工具箱实现朴素贝叶斯分类
第一步:贝叶斯网络工具箱
第二步:解压压缩包
第三步:将工具箱中bnt文件夹复制到matlab工具箱文件夹中
第四步:打开
⑹ 求大神帮忙查看用matlab的bnt工具箱编的贝叶斯网络程序准确率不高的问题,如解决悬赏现金200元!!!急!
第一步:下载贝叶斯网络工具箱
第二步:解压压缩包
第三步:将工具箱中bnt文件夹内复制容到matlab工具箱文件夹中(D:\Program Files\MATLAB\R2014a\toolbox)
第四步:打开matlab2014a
贝叶斯网络是处理不确定信息做有效的表示方法之一。其关键的特征之一是提供了把整个概率分布分解成几个局部分布的方法,网络的拓扑结构表明如何从局部的概率分布获得完全的联合概率分布。
贝叶斯网络适合于对领域知识具有一定了解的情况,至少对变量间的依赖关系较清楚。否则直接从数据中学习贝叶斯网络结构复杂性极高(随节点的增加成指数级增长)
⑺ 如何安装贝叶斯网络工具箱
在matlab的file下面的set path把它加上,把路径加进去后在
file→Preferences→General的Toolbox Path Caching里点击update Toolbox Path Cache更新专一下,就属OK了
⑻ 如何在matlab2012b下安装贝叶斯网络工具箱
直接将
贝叶斯网络
工具箱所在的路径
添加到matlab中的
setpath路径下即可