贝叶斯理论是一种研究不确定性的推理方法。不确定性常用贝叶斯概率表示,它是一种主观概率。通常的经典概率代表事件的物理特性,是不随人的认识而变化的客观存在,而贝叶斯概率则是个人主观的估计,会随个人的主观认识的变化而变化。如在投掷硬币的实验中,贝叶斯概率是指个人相信硬币会某面向上的程度。
主观概率不像经典概率那样强调多次的重复,因此在许多不可能出现重复事件的场合能得到很好的应用,如投资者对股票是否能取得高收益的预测不可能进行重复的实验,此时利用主观概率,按照个人对事件的相信程度而对事件做出推断是一种很合理且易于解释的方法。
在贝叶斯理论之上可以建立贝叶斯网络。贝叶斯网络是用来表示变量之间连接关系概率的图形模式,它提供了一种自然的表示因果关系的方法,用于刻画信任度与证据的一致性以及信任度随证据而变化的增量学习特性,以概率的权值来描述数据间的相关性。
使用 P ( X = x | A )或者 P ( x | A )表示在给定知识 A 的情形下对事件 X = x 的相信程度,即贝叶斯概率,它同时也表示 X 的分布或分布密度。
如果 θ 是一个参数, P ( θ | A )表示在给定知识 A 的前提下 θ 的分布, D ={ X 1 = x 1 ,…, X N = x N }表示观测数据集合,则 P ( θ | D , A )表示给定知识 A 和数据 D 时参数 θ 的分布。其中 P ( θ | A )也表示参数 θ 的先验概率,有知识 A 表示该先验不是无知识先验,它是在掌握知识 A 后给出的先验概率; P ( θ | D , A )表示参数 θ 的后验概率,它是在已知知识 A 和数据 D 之后对参数 θ 的概率密度的估计。在实际表示中,可以省略知识 A 。
由贝叶斯理论可知
经过简单变化,可以得到由先验知识和数据计算后验概率的贝叶斯定理
式中的 P ( θ | D )常常被称为似然函数,用 l ( θ | D )表示,此时贝叶斯定理常可表示为
一般来说,先验概率可反映人们在获得数据之前对参数(或其他概率知识)的认识,后验概率可反映在获得数据之后对参数的认识。两者的差异源自数据出现后对参数的调整。所以从这个角度看,先验概率和后验概率是相对的,当需要利用新数据更新参数的概率时,已知的参数概率就是先验概率,更新后的参数概率就是后验概率。这一更新过程可以重复进行,只要有新的数据信息,就可以根据贝叶斯定理对先验概率进行更新,得到后验概率。
贝叶斯定理给出了一种根据新数据不断更新后验概率的序贯分析方法。如果获得了新的数据集 D *,则在获得数据集 D 和 D *后参数的后验概率为
设 U 是一个有限集, U ={ X 1 , X 2 ,…, X n },其中 X i 从一有限集Val( X i )中取值。 U 的一个贝叶斯网络定义了 U 上的一个联合概率分布。 B =〈 G , Θ 〉表示一贝叶斯网络,其中 G 是一个有向无环图,其顶点对应于有限集 U 中的随机变量 X 1 , X 2 ,…, X n ,其弧代表一个函数依赖关系。如果有一条弧从 X i 到 X j ,则 X i 是 X j 的“双亲”或直接前驱(或父节点), X j 是 X i 的后继(或子节点),变量 X k 所有“双亲”变量用集合 P a ( X k )表示,并用 p a ( X k )表示 P a ( X k )的一个取值。一旦给定其“双亲”,图2.5给定的一个贝叶斯网络中的每个变量独立于图中该连接点的非后继。这里的独立是指条件独立,其定义是:给定 Z , X i , X j 是条件独立的,如果 ,当 P ( X j , Z )>0时,有 P ( x i | z , x j )= P ( x i | z )成立。 Θ 表示用于量化网络的一组参数,对于每一个 X i 的取值 x i ,以及 P a ( X k )的取值 p a ( X k ),存在一个参数, ,指明在给定 p a ( X k )下 X i 发生的条件概率。图2.5所示为一个贝叶斯网络。实际上贝叶斯网络给定了变量集合 X 上的联合条件概率分布
图2.5 一个贝叶斯网络
贝叶斯网络的建立主要有两个相继环节,一个是结构学习,另一个是参数学习。结构学习是利用一定的方法建立贝叶斯网络结构的过程。该过程决定了各个变量间的关系,是实现贝叶斯网络分类算法的最重要的步骤,是参数学习环节与分类环节的基础。参数学习是量化网络的过程,它在网络结构已知的情况下计算各节点 X i 的条件概率。
常用以下3种方法来构造贝叶斯网络。
(1)由领域专家确定贝叶斯网络的变量(有时也称为影响因子),然后通过专家知识来确定贝叶斯网络的结构,并指定它的概率密度。这种方法构造的贝叶斯网络完全在专家的指导下进行,由于人类获得知识的有限性,导致构建的贝叶斯网络与实践中积累的数据有较大偏差。
(2)由领域专家确定贝叶斯网络的结构特点,通过大量的训练数据,来学习贝叶斯网络的结构与参数。这种方法完全是一种数据驱动的方法,具有很强的适应性,而且随着数据挖掘和机器学习等技术的不断发展,这种方法更加普及。
(3)由领域专家确定贝叶斯网络的结构特点,通过专家知识来确定网络的结构,再通过机器学习的方法从数据中学习网络的参数。这种方法实际上是前两种方法的折中,在邻域中变量之间的关系较为明显的情况下,这种方法能大大提高学习的效率。
贝叶斯网络的结构学习主要分析节点依赖关系与节点连接关系。常用的算法有基于评分-搜索的贝叶斯网络的结构学习和基于信息化的依赖分析。
① 基于评分-搜索的贝叶斯网络的结构学习算法将学习问题看作数据集寻找最合适的结构。大多数算法应用启发式搜索的方法,从没有边的图形开始,利用搜索方法将边加入图形。然后,利用测试方法检验新的结构是否优于原结构。如果是,保存新加上的边并继续加入其他边。这个过程一直持续到得到最优的结构。我们可以使用不同的测试标准评价结构的优劣。为了减小搜索空间,许多算法事先确定知识结构的次序。
该算法随着变量增加,其运算复杂性也增加,所以当变量较大时,贝叶斯网络结构空间是相当大的,这会使搜索用时较长且结果较差,导致准确、有效地找到贝叶斯分类器的最优结构是非常困难的。
② 基于信息化的依赖分析算法主要根据变量之间的依赖性建立贝叶斯网络结构。依赖关系通过变量的互信息定义,如果对应变量的网络节点为 X i 和 X j ,则 X i 和 X j 的互信息可以表示为
条件互信息可表示为
其中 C 是一个节点集合,如果 I ( X i , X j )≤ ε ( ε 是一个定值),则节点 X i 和 X j 依赖较少。
贝叶斯网络的参数学习实质上是在已知贝叶斯网络结构的条件下,通过样本学习获取每个节点的概率密度。初始的贝叶斯网络的概率分布一般由专家根据先验知识指定,称为网络的先验参数。先验参数可能导致与观察数据产生较大的偏差。要减小偏差,必须从样本数据中学习以获取更准确的参数及其相应的概率分布。针对完整与不完整数据,贝叶斯网络的参数学习也分为两种情况。
(1)基于完整数据的贝叶斯网络的参数学习。
对完整数据集 D 进行条件概率学习的目标是找到能以概率形式 P ( x | θ )概括 D 的参数 θ 。参数学习一般要首先指定一定的概率分布族,然后可以采用极大似然估计(MLE)方法或贝叶斯方法估计这些参数。下面简单介绍贝叶斯方法。
设 X =( X 1 , X 2 ,…, X n )为对应各节点的随机变量集, B 表示贝叶斯网络的结构, θ 表示各节点条件概率分布的随机变量。 D =( C 1 , C 2 ,…, C n ),每个 C i 都是随机变量的实例,目的是通过对样本数据的学习,得到各节点的条件概率分布。
贝叶斯方法学习条件概率由两部分组成,即观察前的先验知识和观测得到的数据。假设参数的先验分布为Dirichlet分布
式中 是分布精度, α i ( i =1,…, n )为超参数,这些参数为每个取值出现次数的先验知识。
参数的后验分布也为Dirichlet分布
式中 m i 是训练样本中 x i 第 i 个值出现的次数, N 为所有值总的出现次数。
对于含有多个父节点条件概率的计算,设 θ kj 表示在父状态 j 时, x i = k 的条件概率, r i 表示 x i 的取值个数, q i 表示所有父节点的状态总数。那么在以上假定的基础上,对于每个变量 x i 和它的父状态 j 服从Dirichlet分布
在数据集 D 下的后验分布仍为Dirichlet分布,所以可以用式(2.21)来计算条件概率
(2)基于不完整数据的贝叶斯网络的参数学习。
在训练样本集不完整的情况下,一般要借助近似算法,目前常采用的是Gibbs抽样(Gibbs Sampling)算法和EM(Expectation Maximization)算法。
Gibbs抽样算法是一种随机算法,能近似给出变量的初始概率分布。算法过程:按照候选假设集合 H 上的后验分布,从 H 中随机选择假设 h ,用来预言下一个实例的分类。算法的实现分为3个步骤:首先,随机地对所有未观察变量的状态进行初始化,由此可得出一个完整的数据集;然后,基于这个完整的数据集,对条件概率表(Conditional Probability Table,CPT)进行更新;最后,基于更新的CPT,用Gibbs抽样算法对所有丢失的数据进行抽样,又可得到一个完整的数据集。直到CPT达到稳定时,完成学习过程。
EM算法是在概率模型中寻找参数极大似然估计值或者最大后验估计值的算法,可搜索参数的极大后验概率。EM算法用于变量值从来没有被直接观察到的情形,但要求这些变量所遵循的概率分布的一般形式已知。
EM算法的实现过程如下。
给定一个似然函数 L ( θ ; x , z ),其中 θ 是参数集, x 是可观测得到的数据, z 是不可观测到的潜在数据或缺失数据。
EM算法主要通过迭代地应用如下两个步骤来寻找极大似然估计值。
① E步骤(Expectation Step):通过给定的观测数据 x ,根据参数集 θ (t) 的当前估计值,计算关于 z 的条件分布的似然函数的期望值。
② M步骤(Maximization Step):找到使如下表达式最大化的参数。
重复E步骤、M步骤,直至收敛。简单来说,EM算法的第一步是利用对隐藏变量的现有估计值,计算其极大似然估计值来计算期望值;第二步是最大化在E步骤上求得的极大似然估计值来计算参数的值。M步骤上找到的参数估计值被用于下一步计算中,这个过程不断交替进行。
根据变量关系要求的不同,贝叶斯网络一般可分为有约束贝叶斯网络和无约束贝叶斯网络。有约束贝叶斯网络要求变量对应的节点相互独立或有少量的节点是不独立的,这样可以使网络建立的结构简化或参数学习计算量大大减小,而无约束贝叶斯网络允许变量节点是不独立的。
朴素贝叶斯网络是典型的有约束贝叶斯网络。朴素贝叶斯网络如图2.6所示。
图2.6 朴素贝叶斯网络
这个网络描述了朴素贝叶斯分类器的假设:给定定类变量(网络中的根节点)的状态,每个属性变量(网络中每个叶节点)与其余的属性变量是相互独立的。
朴素贝叶斯分类器的工作过程如下。
(1)每个数据样本用一个 n 维特征向量组 X =( x 1 , x 2 ,…, x n )表示。
(2)假定有 m 个类 C 1 , C 2 ,…, C m 。给定一个未知的数据样本 X (即没有类标号),分类器将预测 X 属于具有最高后验概率( X 条件下)的类。即朴素贝叶斯分类器将未知的样本分配给类 C i ,当且仅当 P ( C i | X )> P ( C j | X ),1≤ i ≤ m ,1≤ j ≤ m , j ≠ i 。这样可最大化 P ( C i | X ),使 P ( C i | X )最大的类 C i 称为最大后验假定。
根据贝叶斯定理有
(3)由于 P ( X )对于所有类为常数,因此只需要 P ( X | C i ) P ( C i )最大。如果类的先验概率未知,则通常假设这些类是等概率的,即 P ( C 1 )= P ( C 2 )=…= P ( C m ),并据此只对 P ( X | C i )进行最大化,否则,最大化 P ( X | C i ) P ( C i )。类的先验概率可以用 P ( C i )= s i / s 计算,其中 s i 是类 C i 中的训练样本数, s 是训练样本总数。
(4)给定具有许多属性的数据集,计算 P ( X | C i )的开销可能非常大。为降低此开销,我们可以做类条件相互独立的朴素假设。给定样本的类标号,假设属性值相互条件独立,即在属性之间不存在依赖关系,这样有
概率 P ( x 1 | C i ), P ( x 2 | C i ),…, P ( x n | C i )可以由训练样本估值,其中:
① 如果 A k 是离散属性,则 P ( x k | C i )= s ik / s i , s ik 是属性 A k 上具有值 x k 的类 C i 的训练样本数, s i 是类 C i 的训练样本数。
② 如果 A k 是连续属性,则离散化该属性。
(5)为对未知样本 X 进行分类,对每个类 C i ,计算 P ( X | C i ) P ( C i )。样本 X 被指派到类 C i ,当且仅当 P ( C i | X ) P ( C i )> P ( X | C j ) P ( C j ),1≤ i ≤ m ,1≤ j ≤ m , j ≠ i 时, X 被指派到使 P ( X | C i ) P ( C i )最大的类 C i 。
朴素贝叶斯分类器具有网络结构非常简单、建立网络时间少、参数学习与分类过程简便等优点。但由于类条件相互独立假设割断了属性间的联系,朴素贝叶斯分类器具有网络结构不合理、分类精度相对较低等缺点。
TAN(Tree Augmented Naive)网络是一种有约束贝叶斯网络,是朴素贝叶斯分类器的一种改进。它要求属性节点除了以类结构为父节点外最多只能有一个属性父节点,即每一节点至多有两个父节点,如图2.7所示。
图2.7 一个TAN网络
若 X , Y , Z 是属性变量, x , y , z 分别为其取值,则 X , Y 两变量间的条件互信息定义为
它用于度量一个变量包括另一个变量的信息的多少,两变量间的互信息越大,则两个变量包含对方的信息就越多。
设{ X 1 , X 2 ,…, X n }是 n 个属性节点,则TAN网络的结构学习过程分为如下5个步骤。
(1)计算属性变量之间的条件互信息: I p ( X i ; X j | C ), i , j =1,2,…, n , C 为信息类。
(2)建立一个以 I p ( X i ; X j | C )为弧的权值的加权完全无向图, i , j =1, 2,…, n 。
(3)建立一个最大权值生成树。
(4)选择一个根节点,设置所有边的方向由根节点向外,把无向树转换为有向树。
(5)建立一个类变量节点及类变量节点与属性节点之间的弧。
建立最大权值生成树的方法是:首先把边按权值由大到小排序,然后遵照选择的边不能构成回路的原则,按照边的权值由大到小的顺序选择边,这样由所选择的边构成的决策树便是最大权值生成树。
TAN分类器的网络结构较为简单,建立网络耗时少,而且由于它在一定程度上克服了朴素贝叶斯分类器结构的不合理假设,分类精度较朴素贝叶斯分类器高,且其分类性能是当前所有贝叶斯分类器中较好的。由于TAN分类器性能优异以及网络结构简单,因此它是一种被广泛应用的贝叶斯分类器。
学习无约束贝叶斯网络时需要引入一个评分函数。目前常用的用于学习无约束贝叶斯网络的两个评分函数分别是贝叶斯评分函数以及基于最小描述长度(Minimum Description Length,MDL)的函数。
设 B =< G , Θ >是一个贝叶斯网络, D ={ u 1 , u 2 ,…, u n }是训练样本集,则网络 B 的评分函数为
其中| B |是贝叶斯网络中参数的个数, 。
式(2.26)给出了已知节点数 n 时,决定可能的贝叶斯网络结构的个数的回归函数。很明显,随着节点数的增加,相应可能的网络结构的个数是呈指数级增长的。因此,当节点数较大时,如何有效、快速地在其相应的网络结构空间中找出与训练数据匹配得最好的网络结构是无约束贝叶斯网络学习的重点。