1 / 11
文档名称:

JAVA贝叶斯网络算法.doc

格式:doc   大小:53KB   页数:11页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

JAVA贝叶斯网络算法.doc

上传人:1136365664 2017/11/30 文件大小:53 KB

下载得到文件列表

JAVA贝叶斯网络算法.doc

文档介绍

文档介绍:贝叶斯网络
提纲:
最近工作:
    B-COURSE工具学****br/>    BNT研究与学****br/>    BNT相关实验及结果
        手动建立贝叶斯网及简单推理
        参数学****br/>        结构学****br/>下一步工作安排
 
 
最近工作:
1.   B-COURSE 工具学****br/>B-COURSE是一个供教育者和研究者免费使用的web贝叶斯网络工具。主要分为依赖关系建模和分类器模型设计。输入自己的研究数据,就可以利用该工具在线建立模型,并依据建立好的模型进行简单推理。
B-COURSE要求数据格式是ASCII txt格式的离散数据,其中第一行是各种数据属性变量,其余各行则是采集的样本,属性变量值可以是字符串也可以是数据,属性变量之间用制表符分割,缺失属性变量值用空格代替。读入数据后,在进行结构学****前,可以手动的选择需要考虑的数据属性!生成过程中,可以手动确定模型,确定好模型后,可以选择JAVA playgroud,看到一个java applet程序,可以手动输入相应证据,从而进行简单推理。
B-COURSE的详细使用介绍,可详见[url]http://b-/[/url]。
B-COURSE工具隐藏了数据处理,算法实现等技术难点,所以对初学者来说,容易上手。但是却不能够针对不同的应用进行自主编程,缺乏灵活性。
2.   贝叶斯网工具箱BNT的研究与学****br/>基于matlab的贝叶斯网络工具箱BNT是kevin ,提供了许多贝叶斯网络学****的底层基础函数库,支持多种类型的节点(概率分布)、精确推理和近似推理、参数学****及结构学****静态模型和动态模型。
   贝叶斯网络表示:BNT中使用矩阵方式表示贝叶斯网络,即若节点i到j有一条弧,则对应矩阵中(i,j)值为1,否则为0。
   结构学****算法函数:BNT中提供了较为丰富的结构学****函数,都有:
1.     学****树扩展贝叶斯网络结构的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().
3.   使用BNT做的相关实验及结果
u       手动建立贝叶斯网模型及简单推理实验:
1.     “草地潮湿原因模型”建立及推理:(全是离散变量)
%建立贝叶斯网络结构并制定条件概率表
N = 4;  %四个节点分别是cloudy,sprinkler,rain,wetgrass
dag = zeros(N,N);
C = 1; S = 2; R = 3; W = 4;
dag(C,[R S]) = 1; %节点之间的连接关系
dag(R,W) = 1;
dag(S,W) = 1;
discrete_nodes = 1:N; %离散节点
node_sizes = 2*ones(1,N);%节点状态数
bnet =(dag,node_sizes,'names',{'cloudy','spr