贝叶斯分类器
-
- 1. 贝叶斯定理在分类中的应用
- 2. 朴素贝叶斯分类器
- 3. 朴素贝叶斯分类器的特征
- 4. 贝叶斯误差率
- 5. 贝叶斯信念网络(BBN)
-
- 5.1 模型表示
- 5.2 建立模型
- 5.3 BBN的特点
1. 贝叶斯定理在分类中的应用
P(Y∣X)=P(X∣Y)P(Y)/P(X)P(Y | \mathbf X)= P(\mathbf X|Y)P(Y)/P(\mathbf X)P(Y∣X)=P(X∣Y)P(Y)/P(X)
在比较不同YYY值的后验概率时,P(X)P(\mathbf X)P(X)是常数,先验概率P(Y)P(Y)P(Y)可以通过计算训练集中属于每个类的训练记录所占的比例很容易地估计,类条件概率P(X∣Y)P(\mathbf X|Y)P(X∣Y)的估计我们介绍两种贝叶斯分类方法的实现:(1)朴素贝叶斯分类器(2)贝叶斯信念网
2. 朴素贝叶斯分类器
朴素贝叶斯分类器在估计类条件概率时假设属性之间条件独立,即
P(X∣Y=y)=∏i=1dP(Xi∣Y=y)P(\mathbf X|Y=y)=\prod_{i=1}^dP(X_i|Y=y)P(X∣Y=y)=∏i=1d?P(Xi?∣Y=y)
每个属性集X={X1,X2,?,Xd}\mathbf X = \left \{ X_1,X_2, \cdots, X_d \right \}X={ X1?,X2?,?,Xd?}
有了条件独立的假设,就不必计算X\mathbf XX的每一组合的类条件概率,只需对给定的YYY,计算每一个XiX_iXi?的条件概率
分类测试记录时,朴素贝叶斯分类器对每个类YYY计算后验概率:
P(Y∣X)=P(Y)∏i=1dP(Xi∣Y)/P(X)P(Y | \mathbf X)= P(Y)\prod_{i=1}^d P(X_i|Y)/P(\mathbf X)P(Y∣X)=P(Y)∏i=1d?P(Xi?∣Y)/P(X)
分母为常数,故只要找出使得分子P(Y)∏i=1dP(Xi∣Y)P(Y)\prod_{i=1}^d P(X_i|Y)P(Y)∏i=1d?P(Xi?∣Y)最大的类就足够了
估计分类属性的条件概率
对分类属性XiX_iXi?,根据类yyy中属性值等于xix_ixi?的训练实例的比例来估计条件概率P(Xi=xi∣Y=y)P(X_i=x_i|Y=y)P(Xi?=xi?∣Y=y)
估计连续属性的条件概率
朴素贝叶斯分类器使用两种方法估计连续属性的类条件概率:
(1)把一个连续的属性离散化,通过计算类yyy的训练记录落入XiX_iXi?对应区间的比例来估计条件概率P(Xi∣Y=y)P(X_i|Y=y)P(Xi?∣Y=y). 估计误差由离散策略和离散区间的数目决定
(2)假设连续变量服从某概率分布,然后使用训练数据估计分布的参数。高斯分布通常被用来表示连续属性的类条件概率分布:
P(Xi=xi∣Y=y)=12πσije?(xi?μij)22σij2P(X_i=x_i|Y=y)= \frac{1}{ \sqrt{2 \pi } \sigma_{ij} }e^{- \frac{(x_i-\mu_{ij})^2}{2\sigma_{ij}^2}}P(Xi?=xi?∣Y=y)=2π?σij?1?e?2σij2?(xi??μij?)2?
可以用类yiy_iyi?的所有训练记录关于XiX_iXi?的样本均值xˉ\bar xxˉ估μij\mu _{ij}μij?,用训练记录的样本方差s2s^2s2估σij2\sigma_{ij}^2σij2?
连续随机变量的密度函数在某一特定点的概率为0,故我们应该计算XiX_iXi?落在区间xix_ixi?到xi+εx_i+\varepsilonxi?+ε的条件概率,ε\varepsilonε是一个非常小的常数
P(xi?Xi?xi+ε∣Y=yi)=∫xixi+εfdXi≈f×εP(x_i\leqslant X_i \leqslant x_i + \varepsilon|Y=y_i)=\int_{x_i}^{x_i+\varepsilon}fdX_i \approx f \times \varepsilonP(xi??Xi??xi?+ε∣Y=yi?)=∫xi?xi?+ε?fdXi?≈f×ε
由于ε\varepsilonε是每个类的一个常量乘法因子,在对厚颜概率进行规范化的时候就抵消掉了
条件概率的m估计
有一个潜在问题:如果有一个属性的类条件概率等于0,则整个类的厚颜概率等于0. 仅使用记录比例来估计类条件概率的方法想的太脆弱,尤其当训练样例很少而且属性数目又很大
一种极端的情况是,当训练样例不能覆盖那么多的属性值时,我们可能就无法分类某些测试记录。解决该问题的途径是使用 m估计:
P(xi∣yj)=nc+mpn+mP(x_i|y_j) = \frac{n_c+mp}{n+m}P(xi?∣yj?)=n+mnc?+mp?
nnn是类yjy_jyj?中的实例总数,ncn_cnc?是类yjy_jyj?的训练样例中取值为xix_ixi?的样例数,mmm是称为等价样本大小的参数,ppp是用户指定的参数。如果没有训练集(n=0n=0n=0),则P(xi∣yj)=pP(x_i|y_j)=pP(xi?∣yj?)=p,因此ppp可以看做是在类yjy_jyj?的记录中观察属性xix_ixi?的先验概率。等价样本大小决定先验概率ppp和观测概率nc/nn_c/nnc?/n之间的平衡
3. 朴素贝叶斯分类器的特征
- 面对鼓励的噪声点,朴素贝叶斯分类器是稳健的。因为从数据中估计条件概率时,这些点会被平均。通过在建模和分类时忽略样例,朴素贝叶斯分类器也可以处理属性值遗漏问题
- 面对无关属性,该分类器是稳健的。如果XiX_iXi?是无关属性,那么P(Xi∣YP(X_i|YP(Xi?∣Y几乎变成了均匀分布。XiX_iXi?的类条件概率不会对总的后验概率的计算产生影响
- 相关属性可能会降低朴素贝叶斯分类器的性能,因为对这些属性,条件独立的假设已不成立
4. 贝叶斯误差率
当先验概率不同时,决策边界朝着先验概率较小的类移动。
Error=∫ox^P(鳄鱼∣X)dX+∫x^∞P(美洲鳄∣X)dXError = \int_o^{\hat x}P(鳄鱼|X)dX+\int_{\hat x}^{\infty}P(美洲鳄|X)dXError=∫ox^?P(鳄鱼∣X)dX+∫x^∞?P(美洲鳄∣X)dX
5. 贝叶斯信念网络(BBN)
该方法不要求给定类的所有属性都条件独立,而是允许指定哪些属性条件独立。
5.1 模型表示
BBN用图形表示一组随机变量之间的概率关系,主要由两个部分组成:
(1)一个有向无环图,表示变量之间的依赖关系
(2)一个概率表,把各结点和它的直接父节点关联起来
图中每个结点表示一个变量,每条弧表示两个变量之间的依赖关系,如果从X到Y有一条弧,则X是Y的父母,Y是X的子女。另外,如果网络中存在一条从X到Z的有向路径,则X是Z的祖先,Z是X的后代
BNN的一个重要性质表述如下:
条件独立 贝叶斯网络中的一个结点,如果它的父母结点已知,则它条件独立于它的所有非后代结点
除了网络拓扑结构要求的条件独立性外,每个结点还关联一个概率表
(1)如果结点 X 没有父母结点,则表中只包含先验概率P(X)P(X)P(X)
(2)如果结点 X 只有一个父母结点 Y,则表中包含条件概率P(X∣Y)P(X|Y)P(X∣Y)
(3)如果结点 X 有多个父母结点 {Y1, Y2,…, Yk},则表中包含条件概率P(X∣Y1,Y2,?,Yk)P(X|Y_1,Y_2,\cdots,Y_k)P(X∣Y1?,Y2?,?,Yk?)
5.2 建立模型
BNN的建模包括两个步骤:(1)创建网络结构(2)估计没一个结点的概率表中的概率值。网络拓扑结构可以通过对主观的领域专家知识编码获得。
我们对变量采用不同的排序方案,得到的网络拓扑结构可能会有变化某些拓扑结构可能质量很差,因为它在不同的结点对之间产生了很多条弧。从理论上讲,可能需要检查所有d!d!d!种可能的排序才能确定最佳的拓扑结构,这样计算量相当之大。替代的方法是吧把变量分为原因变量和结果变量,然后从各原因变量向其对应的结果变量画弧
一旦找到了适合的拓扑结构,与各结点关联的概率表就确定了。对这些概率的估计与朴素贝叶斯分类器中所用方法一样
5.3 BBN的特点
- BBN提供了一种图形模型来捕捉特定领域的先验知识的方法。网络还恶意用来对变量间的因果依赖关系进行编码
- 构造网络费时费力,一旦网络确定下来,添加新变量就十分容易
- BBN很适合处理不完全的数据,对有属性遗漏的实例可以通过对该属性的所有可能取值的概率求和或求积分加以处理
- 因为数据和先验知识以概率的方式结合起来了,所以该方法对模型的过拟合问题是非常鲁棒的