㈠ 求助,怎样用贝叶斯网络工具箱实现朴素贝叶斯分类
第一步:贝叶斯网络工具箱
第二步:解压压缩包
第三步:将工具箱中bnt文件夹复制到matlab工具箱文件夹中
第四步:打开
㈡ 如何用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)
㈢ 如何在matlab2014a中添加贝叶斯网络工具箱
第一步:
下载贝叶斯网络工具箱
第二步:
解压压缩包
第三步:
将工具箱中bnt文件夹复制到matlab工具箱文件夹中(D:\Program Files\MATLAB\R2014a\toolbox)
第四步:
打开
matlab2014a
㈣ 贝叶斯网络模型 matlab 源代码
>> N = 8;
dag = zeros(N,N);
X2=2;X3=3;X4=4; X1=1;C = 5; B = 6;A = 7;T = 8;
dag([X2 X3],C)=1;
dag([X3 X4],B)=1;
dag([X1 C],A)=1;
dag([A B],T)=1;
discrete_nodes = 1:N;
node_sizes = 2*ones(1,N);
bnet = mk_bnet(dag, node_sizes);
bnet.CPD{
X1
} = tabular_CPD(bnet, X1, [0.01 0.99]);
bnet.CPD{
X2
} = tabular_CPD(bnet, X2, [0.02 0.98]);
bnet.CPD{
X3
} = tabular_CPD(bnet, X3, [0.03 0.97]);
bnet.CPD{
X4
} = tabular_CPD(bnet, X4, [0.04 0.96]);
bnet.CPD{
A
} = tabular_CPD(bnet, A, [1 1 1 0 0 0 0 1]);
bnet.CPD{
B
} = tabular_CPD(bnet, B, [1 1 1 0 0 0 0 1]);
bnet.CPD{
C
} = tabular_CPD(bnet, C, [1 0 0 0 0 1 1 1]);
bnet.CPD{
T
} = tabular_CPD(bnet, T, [1 0 0 0 0 1 1 1]);
G=bnet.dag;
draw_graph(G);
engine=jtree_inf_engine(bnet);
evidence=cell(1,N);
[engine,ll]=enter_evidence(engine,evidence);
m=marginal_nodes(engine,[X1]);
m.T
㈤ 如何安装贝叶斯网络工具matlab2012b
方法/步骤
一般的下载资源里都附带着破解文件,即crack文件。(双击iso镜像文件,会生成一个虚拟光盘,若已经是压缩文件包,可忽略这步)选择setup.exe开始安装,不连接网络。
输入安装密钥37176-43568-09521-61284-60764-48411-11831-17282-31342-18748-48552-26727-08411,密钥与2012a版本是不一样的。
选择浏览,找到crack文件里的matlab2012b_std.dat文件。
选择安装路径,尽量不要选择系统盘。
开始安装。要半个小时以上。电脑可能会卡。
安装完成后打开软件,需要重复上面的步骤,是一样的操作。
激活成功就可以使用了
㈥ 求大神帮忙查看用matlab的bnt工具箱编的贝叶斯网络程序准确率不高的问题,如解决悬赏现金200元!!!急!
第一步:下载贝叶斯网络工具箱
第二步:解压压缩包
第三步:将工具箱中bnt文件夹内复制容到matlab工具箱文件夹中(D:\Program Files\MATLAB\R2014a\toolbox)
第四步:打开matlab2014a
贝叶斯网络是处理不确定信息做有效的表示方法之一。其关键的特征之一是提供了把整个概率分布分解成几个局部分布的方法,网络的拓扑结构表明如何从局部的概率分布获得完全的联合概率分布。
贝叶斯网络适合于对领域知识具有一定了解的情况,至少对变量间的依赖关系较清楚。否则直接从数据中学习贝叶斯网络结构复杂性极高(随节点的增加成指数级增长)
㈦ 如何在matlab2012b下安装贝叶斯网络工具箱
直接将贝叶斯网络工具箱所在的路径 添加到matlab中的 setpath路径下即可
㈧ 求应用贝叶斯网络的MATLAB程序实例(或R软件程序实例)
希望有帮助,呵呵
㈨ 求助,贝叶斯网络matlab编程
贝叶斯网络是处理不确定信息做有效的表示方法之一。其关键的特征之一是提供了把整个概率分布分解成几个局部分布的方法,网络的拓扑结构表明如何从局部的概率分布获得完全的联合概率分布。
贝叶斯网络适合于对领域知识具有一定了解的情况,至少对变量间的依赖关系较清楚。否则直接从数据中学习贝叶斯网络结构复杂性极高(随节点的增加成指数级增长)