基于MATLAB的贝叶斯网络(BNT)工具箱的使用与实例ppt课件.ppt

上传人:小飞机 文档编号:1325163 上传时间:2022-11-09 格式:PPT 页数:18 大小:692KB
返回 下载 相关 举报
基于MATLAB的贝叶斯网络(BNT)工具箱的使用与实例ppt课件.ppt_第1页
第1页 / 共18页
基于MATLAB的贝叶斯网络(BNT)工具箱的使用与实例ppt课件.ppt_第2页
第2页 / 共18页
基于MATLAB的贝叶斯网络(BNT)工具箱的使用与实例ppt课件.ppt_第3页
第3页 / 共18页
基于MATLAB的贝叶斯网络(BNT)工具箱的使用与实例ppt课件.ppt_第4页
第4页 / 共18页
基于MATLAB的贝叶斯网络(BNT)工具箱的使用与实例ppt课件.ppt_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《基于MATLAB的贝叶斯网络(BNT)工具箱的使用与实例ppt课件.ppt》由会员分享,可在线阅读,更多相关《基于MATLAB的贝叶斯网络(BNT)工具箱的使用与实例ppt课件.ppt(18页珍藏版)》请在三一办公上搜索。

1、基于MATLAB的BNT工具箱的使用与实例,工具箱的安装,下载FullBNT.zip文件。解压文件。 编辑FullBNT/BNT/add_BNT_to_path.m让它包含正确的工作路径。 BNT_HOME = FullBNT的工作路径; 打开Matlab。 运行BNT需要Matlab版本在V5.2以上。 键入add_BNT_to_path,执行这个命令。添加路径。添加所有的文件夹在Matlab的路径下。 键入test_BNT,看看运行是否正常,这时可能产生一些数字和一些警告信息。(你可以忽视它)但是没有错误信息。,基于MATLAB的BNT工具箱的使用与实例Creating your firs

2、t Bayes net 创建你的第一个贝叶斯网络,N=4;%节点为4,节点类型:discrete_nodes=1:4;,节点大小:node_sizes=2,2,2,2;,节点均有两个取值:F&T,bnet = mk_bnet(dag, node_sizes, names, C,S,R,W, discrete, discrete_nodes,)当然,也可以进行简写,将节点大小和类型与贝叶斯网的建立整合:bnet = mk_bnet(dag,2,2,2,2, names, C,S,R,W, discrete, 1:4),参数(parameters)条件概率分布CPD最简单的是CPT:条件概率表,C

3、PT,conditional probability tables,是作为多为数组存储的。注意:子节点,通常是最后一维; 在MATLAB中,数组索引从1开始,按照惯例false(假)=1, true(真)=2例如:节点w,最后一维,创建条件概率表CPT = zeros(2,2,2); CPT(1,1,1) = 1.0;CPT(2,1,1) = 0.1;CPT(2,2,2) = 0.99;CPT=reshape(1,0.1,0.10.99,2,2,2);,利用tabular_CPDbnet.CPDC = tabular_CPD(bnet, C, 0.5 0.5); bnet.CPDR = tab

4、ular_CPD(bnet, R, 0.8 0.2 0.2 0.8); bnet.CPDS = tabular_CPD(bnet, S, 0.5 0.9 0.5 0.1); bnet.CPDW = tabular_CPD(bnet, W, 1 0.1 0.1 0.01 0 0.9 0.9 0.99);,Draw_graph(dag)绘制图形,推理(Inference),贝叶斯网络中有许多不同的算法来作为推断的的工具,在速度、复杂性、普遍性和精确性上有不同的表现。BNT因此提供了多种多样的不同的推断引擎。联合树引擎-所有精确推断引擎的根本jtree_inf_engine调用方法:engine =

5、 jtree_inf_engine(bnet);推理计算:回到上面,我们已经建立了一个关于草地湿润的例子。洒水器和下雨均可能打湿草坪,现在计算洒水器导致草地湿润的概率。题目中,证据为草地湿润即,W=2。后面杨海滨同学会做详细介绍。,evidence = cell(1,N);evidenceW = 2;%证据为W=2engine, loglik = enter_evidence(engine, evidence);% 把证据添加进引擎marg = marginal_nodes(engine, S);%指定计算S的概率分布marg.T;%计算 P(S=1|W=2)与 P(S=2|W=2)marg.

6、T(2);%计算P(S=2|W=2)的边缘概率,当然,证据也可以是多维数组。marg = marginal_nodes(engine, S R W); %指定计算S R W 的联合概率分布,也就是P(S,R,W)。,无证据情况下结果为:ans(:,:,1) = 0.2900 0.0410 0.0210 0.0009ans(:,:,2) = 0 0.3690 0.1890 0.0891,Evidence(R)=2;marg.T;有证据情况下结果为:ans(:,:,1) = 0.0820 0.0018ans(:,:,2) = 0.7380 0.1782,dag=zeros(4,4);dag(1,2

7、 3)=1;dag(2,4)=1;dag(3,4)=1;draw_graph(dag);,bnet=mk_bnet(dag,2,2,2,2,names,C,S,R,W,discrete,1:4);,bnet.CPDC = tabular_CPD(bnet,C,0.5 0.5) ; bnet.CPDR = tabular_CPD(bnet,R,0.8 0.2 0.2 0.8); bnet.CPDS = tabular_CPD(bnet,S,0.5 0.9 0.5 0.1); bnet.CPDW = tabular_CPD(bnet,W,1 0.1 0.1 0.01 0 0.9 0.9 0.99)

8、;,engine = jtree_inf_engine(bnet);evidence = cell(1,4); engine, loglik = enter_evidence(engine, evidence); marg = marginal_nodes(engine, R S W);marg.T;,网络结构,参数,推理,参数学习,从完整的数据中进行最大似然参数估计:还是以湿草坪为例:,首先,我们用正向采样创建一些训练数据。samples = cell(N, nsamples);for i=1:nsamples samples(:,i) = sample_bnet(bnet);Enddata

9、 = cell2num(samples);,然后, Make a tabula rasabnet2 = mk_bnet(dag, node_sizes);seed = 0;rand(state, seed);bnet2.CPDC = tabular_CPD(bnet2, C);bnet2.CPDR = tabular_CPD(bnet2, R);bnet2.CPDS = tabular_CPD(bnet2, S);bnet2.CPDW = tabular_CPD(bnet2, W);,接着 ,查找最大似然估计的参数bnet3 = learn_params(bnet2, samples);,最后

10、,为了查看学习后的参数,我们可以用下面的方法:CPT3 = cell(1,N);for i=1:N s=struct(bnet3.CPDi); % violate object privacyuhui CPT3i=s.CPT;,学习了节点4的参数:dispcpt(CPT34)Samples=20,50,100时,节点4的参数越来越接近真实值,原概率表,参数学习,如果有数据,就不需要手动获取样本,只需要将数据加载即可。,加载数据进行参数学习:先将刚刚得到的样本保存为datatest.txt参数学习data = load(datatest.txt);samples=data;bnet2=dispc

11、pt(,EM 数据缺失情况学习,结果:CPT41 = 0.4670 0.5330 CPT42 = 0.4616 0.5384 0.9495 0.0505CPT43 = 0.8958 0.1042 0.1937 0.8063CPT44 =(:,:,1) = 1.0000 0.1037 0.0915 0.0010(:,:,2) = 0 0.8963 0.9085 0.9990,回顾,推理(Inference),BNT提供了多种多样的不同的推断引擎。联合树算法:jtree_inf_engine变量消元算法:var_elim_inf_engine全局推理算法: enumerative_inf_engi

12、ne, gaussian_inf_engine, and cond_gauss_inf_engine 快速打分算法:quickscore_inf_engine采样算法:likelihood_weighting_inf_engine、gibbs_sampling_inf_engine调用方法:所有推理算法的调用都相同:engine = jtree_inf_engine(bnet);%指定引擎engine, loglik = enter_evidence(engine, evidence);% 添加证据marg = marginal_nodes(engine, S);%指定需要计算的节点marg.T;显示结果,推理举例,贝叶斯网络精确推理:计算P(S=2|W=2) 的概率var_elim_inf_engine为变量消元法, jtree_inf_engine为联合树推理(团树传播法)见inference1.贝叶斯网络近似推理:计算P(S=2|W=2) 的概率likelihood_weighting_inf_engine 为重要性抽要推理见inference2.,结构学习,使用K2算法,对根据wetgrass例子的CPD生成随机数列,进行结构学习,建立贝叶斯网络图。见:wetgrassdata.txt ; K2_wetgrassdata文件,结构学习举例:,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号