基于搜索的贝叶斯网络结构学习算法-K2

基于搜索的贝叶斯网络结构学习算法-K2

2018-04-05 19:34:18 ItsBlue 阅读数 3172更多

分类专栏: 贝叶斯网络 网络结构学习

版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/u012558945/article/details/79828434

部分内容取自:[Cooper and Herskovits, 1991] Cooper, G. and Herskovits, E. (January, 1991). A Bayesian method for the induction of probabilistic networks from data.Technical Report SMI-91-1, Section on Medical Informatics, Stanford University.

一 算法简介

基于搜索的贝叶斯网络结构学习算法核心主要包含两块:一是确定评分函数,用以评价网络结构的好坏。二是确定搜索策略以找到最好的结果。

二 评分函数

对网络结构的学习其实可以归结为求给定数据D下,具有最大后验概率的网络结构Bs,即求Bs使P(Bs| D)最大。

而P(Bs | D) = P(Bs , D) / P(D),分母P(D)与Bs无关,所以最终的目标是求使P(Bs , D)最大的Bs,通过一系列推导(具体推导过程请看最上方链接的paper),可以得到:

其中P(Bs)是关于关于Bs的先验概率,也就是在不给定数据的情况下,我们给每种结构设定的概率。在后面,我们可以假设每种结构的概率服从均匀分布,即概率都是相同的常数c。

令Z是一个包含n个离散随机变量的集合,每个变量Xi有ri种可能的取值(Vi1,Vi2.....Viri)。令D一个数据库,包含m个case,每个case就是对所有Z中随机变量的实例化。用Bs表示一个正好包含Z中随机变量的信念网络。变量Xi在Bs中的父节点表示为πi。Wij表示πi的第j种实例化。πi共有qi种实例化。比如变量Xi有2个父变量,第一个父变量有2种取值,第二个父变量有3种取值,那么qi最多为2*3=6。Nijk表示数据D中Xi取值为Vik并且πi被实例化为Wij。同时:

第一个连乘符号通过i遍历每个随机变量Xi,n为随机变量的个数。

第二个连乘符号通过j遍历当前变量Xi的所有父变量实例,qi表示变量Xi父变量实例的种类数。。

最后一个连乘符号变量遍历当前变量Xi的所有可能取值,ri为可能取值的个数。

用常数代替P(Bs)后:

我们的目标是寻找Bs使后验概率最大:

当找到一个最好的网络结构,把该结构下的Nijk数据带入上式可以得到最大值。从上式可以看出,我们只要最大化每个变量的局部最大,就能得到整体最大。我们将每个变量的部分提出来作为新的评分函数:

三 搜索策略

因此,我们只要对每个变量求出使评分函数最大的父变量集。K2算法使用贪心搜索去获取最大值。首先假设随机变量是有顺序的,如果Xi在Xj之前,那么不能存在从Xj到Xi的边。同时假设每个变量最多的父变量个数为u。每次挑选使评分函数最大的父变量放入集合,当无法使评分函数增大时,停止循环,具体算法如下,其中Pred(Xi)表示顺序在Xi之前的变量:

四 算法拓展

其实我们可以计算log g(i, πi),而不是直接计算g(i, πi)。因为通过log函数可以将乘法运算转变为加法运算。

还有一种算法叫做K2R(K2 Reverse),它从一个全连接的信念网络开始,不断应用贪心算法从结构中移除边。我们可以用K2和K2R分别学习两个结构并从中挑选后验概率更大的结构。也可以在执行K2算法时,初始化不同的节点顺序,并挑选输出的网络结构中较好的那个。

原文地址:https://www.cnblogs.com/think90/p/11619636.html

时间: 2024-10-31 12:35:32

基于搜索的贝叶斯网络结构学习算法-K2的相关文章

基于朴素贝叶斯的定位算法

1 定位背景介绍 一说到定位大家都会想到gps,然而gps定位有首次定位缓慢(具体可以参考之前的博文<LBS定位技术>).室内不能使用.耗电等缺陷,这些缺陷大大限制了gps的使用.在大多数移动互联网应用例如google地图.百度地图等,往往基于wifi.基站来进行定位. 一般APP在请求定位的时候会上报探测到的wifi信号.基站信号.以wifi为例,手机会探测到周围各个wifi(mac地址)对应的信号强度(RSSI),即收集到信号向量(<WF1, RSSI1> <WF2, R

基于高斯过程的贝叶斯优化(二)AC函数

上节介绍过acquistion function(AC函数)是用来利用之前的信息寻找下一个$x_{t+1}$.下面介绍AC函数的具体形式: 目前主流的AC函数主要有三种Probability of Improvement(PI),Excepted Improvement(EI),GP Upper Confidence Bound(GP-UCB)三种. 首先介绍下最基本的数学背景. 记$\mathcal { D } _ { 1 : t } = \left\{ \mathbf { x } _ { 1

分类算法之朴素贝叶斯——简单天气预报算法

这两天学习了一个相对比较简单但是十分实用的分类算法--贝叶斯分类算法,与我做项目使用的svm算法相比确实有很多精妙之处,.好比撒尿牛丸--好吃又好玩,而贝叶斯分类器则是简单又强大.本文结合简单天气预报进行讲解. 贝叶斯定理: 贝叶斯定理是概率论里面一个计算条件概率的法器!为什么是法器,且看后文.先摆出计算公式: 也许乍一看这公式没什么,但是我们先将公式移项得:P(A|B)P(B)=P(AB),此时再将A与B互换一下,发现什么没有?一个伟大的公式来了: P(A|B)P(B)=P(AB)=P(B|A

贝叶斯的学习

贝叶斯法则 贝叶斯法则又被称为贝叶斯定理.贝叶斯规则,是指概率统计中的应用所观察到的现象对有关概率分布的主观判断(即先验概率)进行修正的标准方法.当分析样本大到接近总体数时,样本中事件发生的概率将接近于总体中事件发生的概率. 贝叶斯统计中的两个基本概念是先验分布和后验分布: 1.先验分布.总体分布参数θ的一个概率分布.贝叶斯学派的根本观点,是认为在关于总体分布参数θ的任何统计推断问题中,除了使用样本所提供的信息外,还必须规定一个先验分布,它是在进行统计推断时不可缺少的一个要素.他们认为先验分布不

贝叶斯网络 学习笔记

一.概述 贝叶斯网是概率论和图论相结合的产物,可以从概率论的角度讨论变量间的依赖与独立,也可以从图论的角度讨论节点间的连通与分隔,两者有深刻的联系. 1.通过图论准则可以判别变量间条件独立关系. 2.X 与 Y 不直接相连,通过其他变量才能在两者间传递信息;如果 X 和 Y 之间的所有信息通道都被阻塞,那么信息就无法再它们之间传递. 二.贝叶斯网络推理 (Inference) 贝叶斯网络可以利用变量间的条件独立对联合分布进行分解,降低参数个数,推理 (inference) 是通过计算来回答查询的

分层贝叶斯模型——采样算法

1. 蒙特卡洛估计 若$\theta$是要估计的参数,$y_{1},...,y_{n}$是从分布$p(y_{1},...,y_{n}|\theta) $中采样的样本值,假定我们从后验分布$p(\theta|y_{1},...,y_{n})$中独立随机采样$S$个$\theta$值,则$$ \theta^{(1)},...,\theta^{(S)}\sim^{i.i.d.}p(\theta|y_{1},...,y_{n}) $$ 那么我们就能够通过样本$\{\theta^{(1)},...,\th

贝叶斯深度图学习

清华大学朱军博士:可扩展的贝叶斯方法与深度生成模型 Welcome to ZhuSuan

基于的朴素贝叶斯的文本分类(附完整代码(spark/java)

本文主要包括以下内容: 1)模型训练数据生成(demo) 2 ) 模型训练(spark+java),数据存储在hdfs上 3)预测数据生成(demo) 4)使用生成的模型进行文本分类. 一.训练数据生成 spark mllib模型训练的输入数据格式通常有两种,一种叫做 LIBSVM 格式,样式如下: label index1:value1 index2:value2 label为类别标签,indexX为特征向量索引下标,value为对应的那维的取值. 另一种格式样式如下: label f1,f2

BPR贝叶斯个性化排序算法

原文地址:https://www.cnblogs.com/Lee-yl/p/9615043.html