贝叶斯分类器是一种概率框架下的统计学习分类器,对分类任务而言,假设在相关概率都已知的情况下,贝叶斯分类器考虑如何基于这些概率为样本判定最优的类标。在开始介绍贝叶斯决策论之前,我们首先来回顾下概率论委员会常委-–贝叶斯公式。
若将上述定义中样本空间的划分Bi看做为类标,A看做为一个新的样本,则很容易将条件概率理解为样本A是类别Bi的概率。在机器学习训练模型的过程中,往往我们都试图去优化一个风险函数,因此在概率框架下我们也可以为贝叶斯定义“条件风险”(conditional risk)。
我们的任务就是寻找一个判定准则最小化所有样本的条件风险总和,因此就有了贝叶斯判定准则(Bayes decision rule):为最小化总体风险,只需在每个样本上选择那个使得条件风险最小的类标。
若损失函数λ取0-1损失,则有:
即对于每个样本x,选择其后验概率P(c | x)最大所对应的类标,能使得总体风险函数最小,从而将原问题转化为估计后验概率P(c | x)。一般这里有两种策略来对后验概率进行估计:
* 判别式模型:直接对 P(c | x)进行建模求解。例我们前面所介绍的决策树、神经网络、SVM都是属于判别式模型。
* 生成式模型:通过先对联合分布P(x,c)建模,从而进一步求解 P(c | x)。
贝叶斯分类器就属于生成式模型,基于贝叶斯公式对后验概率P(c | x) 进行一项神奇的变换,巴拉拉能量……. P(c | x)变身:
对于给定的样本x,P(x)与类标无关,P(c)称为类先验概率,p(x | c )称为类条件概率。这时估计后验概率P(c | x)就变成为估计类先验概率和类条件概率的问题。对于先验概率和后验概率,在看这章之前也是模糊了我好久,这里普及一下它们的基本概念。
* 先验概率: 根据以往经验和分析得到的概率。
* 后验概率:后验概率是基于新的信息,修正原来的先验概率后所获得的更接近实际情况的概率估计。
实际上先验概率就是在没有任何结果出来的情况下估计的概率,而后验概率则是在有一定依据后的重新估计,直观意义上后验概率就是条件概率。下面直接上Wiki上的一个例子,简单粗暴快速完事……
回归正题,对于类先验概率P(c),p(c)就是样本空间中各类样本所占的比例,根据大数定理(当样本足够多时,频率趋于稳定等于其概率),这样当训练样本充足时,p©可以使用各类出现的频率来代替。因此只剩下类条件概率p(x | c ),它表达的意思是在类别c中出现x的概率,它涉及到属性的联合概率问题,若只有一个离散属性还好,当属性多时采用频率估计起来就十分困难,因此这里一般采用极大似然法进行估计。
##7.2 极大似然法
极大似然估计(Maximum Likelihood Estimation,简称MLE),是一种根据数据采样来估计概率分布的经典方法。常用的策略是先假定总体具有某种确定的概率分布,再基于训练样本对概率分布的参数进行估计。运用到类条件概率p(x | c )中,假设p(x | c )服从一个参数为θ的分布,问题就变为根据已知的训练样本来估计θ。极大似然法的核心思想就是:估计出的参数使得已知样本出现的概率最大,即使得训练数据的似然最大。
所以,贝叶斯分类器的训练过程就是参数估计。总结最大似然法估计参数的过程,一般分为以下四个步骤:
* 1.写出似然函数;
* 2.对似然函数取对数,并整理;
* 3.求导数,令偏导数为0,得到似然方程组;
* 4.解似然方程组,得到所有参数即为所求。
例如:假设样本属性都是连续值,p(x | c )服从一个多维高斯分布,则通过MLE计算出的参数刚好分别为:
上述结果看起来十分合乎实际,但是采用最大似然法估计参数的效果很大程度上依赖于作出的假设是否合理,是否符合潜在的真实数据分布。这就需要大量的经验知识,搞统计越来越值钱也是这个道理,大牛们掐指一算比我们搬砖几天更有效果。
##7.3 朴素贝叶斯分类器
不难看出:原始的贝叶斯分类器最大的问题在于联合概率密度函数的估计,首先需要根据经验来假设联合概率分布,其次当属性很多时,训练样本往往覆盖不够,参数的估计会出现很大的偏差。为了避免这个问题,朴素贝叶斯分类器(naive Bayes classifier)采用了“属性条件独立性假设”,即样本数据的所有属性之间相互独立。这样类条件概率p(x | c )可以改写为:
这样,为每个样本估计类条件概率变成为每个样本的每个属性估计类条件概率。
相比原始贝叶斯分类器,朴素贝叶斯分类器基于单个的属性计算类条件概率更加容易操作,需要注意的是:若某个属性值在训练集中和某个类别没有一起出现过,这样会抹掉其它的属性信息,因为该样本的类条件概率被计算为0。因此在估计概率值时,常常用进行平滑(smoothing)处理,拉普拉斯修正(Laplacian correction)就是其中的一种经典方法,具体计算方法如下:
当训练集越大时,拉普拉斯修正引入的影响越来越小。对于贝叶斯分类器,模型的训练就是参数估计,因此可以事先将所有的概率储存好,当有新样本需要判定时,直接查表计算即可。
半朴素贝叶斯分类器
为了降低贝叶斯公式中估计后验概率 P(c I x) 的困难,朴素贝叶斯分类器采用了属性条件独立性假设,但在现实任务中这个假设往往很难成立.于是,人们尝试对属性条件独立性假设进行一定程度的放松,由此产生了"半朴素贝叶斯分类器" 。基本想法是适当考虑一部分属性间的相互依赖信息,从而既不需进行完全联合概率计算,又不至于彻底忽略了比较强的属性依赖关系。
“独依赖估计” 是半朴素贝叶斯分类器最常用的一种策略,所谓"独依赖"就是假设每个属性在 类别之外最多仅依赖于一个其他属性,即
其中 pαi 为属性 Xi 所依赖的属性,称为xi的父属性.此时,对每个属性xi,若其父属性 pαi 已知,则可采用上式中的办法来估计概率值P(xi|c,pαi) 。问题的关键就转化为如何确定每个属性的父属性。最直接的做法是假设所有属性都依赖于同一个属性,称为"超父",然后通过交叉验证等模型选择方法来确定超父属性,即为SPODE方法。
TAN算法基于最大带权生成树,步骤如下:
(1) 计算任意两个属’性之间的条件互信息
(2) 以属性为结点构建完全图,任意两个结点之间边的权重设为 I(xi, xj I y) ;
(3) 构建此完全图的最大带权生成树,挑选根变量,将边置为有向;
(4) 加入类别结点 y,增加从 y 到每个属性的有向边.
TAN 实际上仅保留了强相关属性之间 的依赖性.
AODE是一种基于集成学习机制、更为强大的独依赖分类器。与 SPODE 通过模型选择确定超父属性不同, AODE 尝试将每个属性作为超父来构建 SPODE,然后将那些具有足够训练数据支撑的 SPODE 集成起来作为最终结果,即
DXi 是在第 i 个属性上取信为xi的样本的集合, m’ 为阈值常数.
能否通过考虑属性间的高阶依赖来进一步提升泛化性能呢?也就是说,将属性 Pai向替换为包含 k 个属性的集合 Pa,从而将 ODE 拓展为 kDE。随着 k 的增加,准确估计概率 P(xi | y,Pai) 所需的训练样本数量将以指数级增加。因此,若训练数据非常充分,泛化性能有可能提升;但在有限样本条件下,则又陷入估计高阶联合概率的泥沼。
贝叶斯网络
贝叶斯网借助有向无环图来刻画属性间的依赖关系,并使用条件概率表来描述属性的联合概率分布。
一个贝叶斯网 B 由结构 G和参数 。 两部分构成?即 B =(G, q). 网络结构 G 是一个有向无环图,其每个结点对应于一个属性,若两个属性有直接依赖关系,则它们由一条边连接起来;参数q 定量描述这种依赖关系。
a. 结构
贝叶斯网结构有效地表达了属性间的条件独立性。给定父结点集,贝叶斯网假设每个属性与它的非后裔属性独立。贝叶斯望中上变量间的典型关系:
b. 学习
贝叶斯网学习的首要任务就是根据训练数据集来找出结构最恰当的贝叶斯网,评分搜索是求解这一 问题的常用办法。我们先定义一个评分函数(score function),以此来 评估贝叶斯网与训练数据的契合程度,然后基于这个评分函数来寻找结构最优的贝叶斯网。
学习的目标是找到一个能以最短编码长度描述训练数据的模型,
给定训练集 D = {X1,X2,…, Xm},贝叶斯网 B 在 D 上的评分函数可写为
其中, IBI 是贝叶斯网的参数个数; f(theta) 表示描述每个参数theta所需的字节数;
是贝叶斯网 B 的对数似然.学习任务就转化为一个优化任务,即寻找一个贝叶斯网 B 使评分函数 s(B I D) 最小.
c. 推断
最理想的是直接根据贝叶斯网定义的联合概率分布来精确计算后验概率,但这样的"精确推断"己被证明是 NP 难的 , 当网络结点较多、连接稠密时,难以进行精确推断,此时需借助"近似推断"。 通过降低精度要求,在有限时间内求得近似解。在现实应用中,贝叶斯网的近似推断常用吉布斯采样,这是一种随机采样方法。
步骤如下:
需注意的是,由于马尔可夫链通常需很长时间才能趋于平稳分布,因此吉布斯采样算法的收敛速度较慢.此外,若贝叶斯网中存在极端概率 “0” 或 “1” ,则不能保证马尔可夫链存在平稳分布,此时吉布斯采样会给出错误的估 计结果.
EM算法
在现实应用中往往会遇到"不完整"的训练样本,例如由于西瓜的根蒂己脱落,无法看出是"蜷缩"还是"硬挺"。将这种未观测到的变量称为隐变量。
令 X 表示己观测变量集, Z表示隐变量集, theta表示模型参数.若欲对theta做极大似然估计,则应最大化对数似然
然而由于 Z 是隐变量,上式无法直接求解.此时我们可通过对 Z 计算期望,来最大化已观测数据的对数"边际似然"
EM 算法是常用的估计参数隐变量的利器,它是一种迭代式的方法。其基本想法是:若参数theta己知, 则可根据训练数据推断出最优隐变量 Z 的值 (E 步);反之,若Z 的值已知,则可方便地对参数theta做极大似然估计 (M 步).