机器学习和数据挖掘学习贝叶斯网络


Sect。在图7.4中,示出了如何手动构建贝叶斯网络。现在我们将介绍贝叶斯网络的归纳算法。与前面描述的学习过程类似,从包含训练数据的文件自动生成贝叶斯网络。该过程通常分解为两部分。

1. 学习网络结构:对于给定的变量,从训练数据生成网络拓扑。到目前为止,第一步是更困难的一步,稍后将予以密切关注。

2. 学习条件概率:对于已知的网络拓扑,CPT必须填充值。如果有足够的训练数据,则可以通过计算数据中的频率来估计所有必要的条件概率。该步骤可以相对容易地自动化。

我们现在将解释贝叶斯网络如何使用[Jen01]中的简单算法学习。

 

8.5.1学习网络结构

在贝叶斯网络的发展过程中(见第7.4.6节),必须考虑变量的因果依赖性,以便获得高质量的简单网络。人类开发人员依赖于机器无法获得的背景知识。因此,此过程不容易自动化。寻找贝叶斯网络的最优结构可以表述为一个典型的搜索问题。设一组变量V 1 Vn和一个带有训练数据的文件。我们正在寻找一组在节点之间没有循环的有向边

 

图片图片图片图片图片

 

8.28 两个贝叶斯网络,用于对第158页的练习7.3中的天气预报示例进行建模

 

V 1Vn ,即有向无环图(DAG),它尽可能地再现基础数据。

首先,我们观察搜索空间。随着节点数量的增加,不同DAG的数量增长超过指数。五个节点有29281个,九个节点有大约10 15不同的DAG [MDBM00]。因此,如果变量的数量增加,在具有给定变量集的所有图的空间中的无知组合搜索(参见第6.2节)是没有希望的。因此必须使用启发式算法。这提出了贝叶斯网络的评估函数的问题。可以在应用于一组测试数据期间测量网络的分类错误,例如在C4.5中所做的(参见第8.4节)。但是,为此,必须将贝叶斯网络计算的概率映射到决策。

可以在概率分布上直接测量网络质量。我们假设,在从数据构建网络之前,我们可以确定(估计)分布。然后我们开始在所有DAG的空间中搜索,使用数据估计每个DAG(即,对于每个贝叶斯网络)的CPT值,并从中我们计算分布并将其与已知分布进行比较从数据。对于分布的比较,我们显然需要距离度量。

让我们考虑第158页的练习7.3中的天气预测示例,其中包括三个变量SkyBarPrec和分布

P(天空,酒吧,PREC=040007008010009011003012)。

在图 8.28 中,呈现了两个贝叶斯网络,现在我们将比较它们的质量。这些网络中的每一个都假设独立性,这是通过我们确定网络的分布然后将其与原始分布进行比较来验证的(参见第 219 页的练习 8.15 )。

因为,对于恒定的预定变量,分布由恒定长度的矢量清楚地表示,我们可以计算两个矢量的差的欧几里德范数作为分布之间的距离。我们定义

dqxy= xi yi2

一世

 

=

=

作为矢量分量的距离的平方和,并计算距离 dqP aP00029 从原始分布的网络1 的分布P a 。对于网络2,我们计算 dqP bP0显然,网络1是分布的更好近似值。通常,而不是方形距离,而不是

图片

8.29满足条件 i <j具有五个变量和边V iV j的最大网络

 

 

所谓的Kullback-Leibler距离

 

dkxy= yilog 2 yi log 2 xi),

一世

 

=

=

使用信息理论度量。有了它我们计算 dkP aP0017 dkP bP009并得出与以前相同的结论。可以预期,具有许多边缘的网络比具有少量边缘的网络更接近分布。如果构建网络中的所有边缘,那么它就会变得非常混乱,并且会产生过度拟合的风险,就像许多其他学习算法中的情况一样。为了避免过度拟合,我们使用启发式评估函数为小型网络提供更大的权重

 

fN=尺寸(N+ w dkP NP)。

这里SizeNCPT中的条目数,P N是网络N的分布。w是权重因子,必须手动拟合。

因此,贝叶斯网络的学习算法计算许多不同网络的启发式评估fN,然后选择具有最小值的网络。如前所述,困难在于减少我们正在搜索的网络拓扑的搜索空间。作为一种简单的算法,可以从变量V 1 V n的(例如因果关系)排序开始,在图中仅包括i <j那些边。我们从满足这种条件的最大模型开始。对于五个有序变量,该网络如图8.29 所示。

现在,例如,在贪婪搜索的精神中(比较Sect.6.3.1),一个接一个的边缘被移除,直到值f不再减小。

对于这种形式的大型网络,该算法不实用。大的搜索空间,权重w的手动调整以及与目标分布P的必要比较是其原因,因为这些可能简单地变得太大,或者可用的数据集可能太小。

事实上,对贝叶斯网络学习的研究仍在全面展开,并且存在大量建议的算法,例如EM算法(参见第 8.7.2节),马尔可夫链蒙特卡罗方法和吉布斯采样[DHS01Jor99Jen01HTF09]。除了这里介绍的批量学习(其中网络从整个数据集生成一次)之外,还有增量算法,其中每个单独的新案例用于改进网络。还存在这些算法的实现,例如Hugin www.hugin.com )和Bayesware www.bayesware.com )。

 

图片


 


ETC注销ETC充值ETC客服ETC扣费查询


ETC发行合作

发表回复