贝叶斯分类器简介

贝叶斯分类器是一种简单常用的分类器,本文对贝叶斯分类器及其相关知识进行简要介绍。

贝叶斯定理

首先介绍几个概念:先验概率、后验概率与条件概率。先验概率是指根据以往经验和分析得到的概率。条件概率是指一个事件发生后另一个事件发生的概率。后验概率是在相关证据或者背景给定并纳入考虑之后的条件概率。设有事件$A$与$B$,条件概率为$P(A丨B)$。一般情况下我们很容易得出$P(A丨B)$,而后验概率$P(B丨A)$则很难得出,但我们又更加关心$P(B丨A)$。贝叶斯定理就为我们打通从$P(A丨B)$获得$P(B丨A)$的道路。

由上面的假设,我们有:

条件概率

$$P(A丨B)=\frac{P(AB)}{P(B)}$$

全概率

$$P(A)=\sum_i P(A丨B_i)P(B_i)$$

则贝叶斯公式为:

$$P(B_i丨A)=\frac{P(A丨B_i)P(B_i)}{\sum_j P(A丨B_j)P(B_j)}$$

若给定样本集合$D$,在这些样本中计算事件$A_1, A_2, \ldots, A_n$出现的最大概率,即$max P(A_i丨D)$。由贝叶斯公式有:

$$max P(A_i丨D)=max \frac{P(D丨A_i)P(A_i)}{P(D)}$$

若样本给定,则对于任何$A_i$,$P(D)$是常数,比较概率的时候可以不考虑。若$A_1, A_2, \ldots, A_n$的先验概率相等,则$P(A_i)$也可以不考虑。所以有:

$$max P(A_i丨D)=max P(D丨A_i)P(A_i) \to max P(D丨A_i) $$

$$\Rightarrow max P(A_i丨D)\to P(D丨A_i)$$

以上推导过程对分类器的设计很重要。

贝叶斯分类器

分类器

当你看到一个陌生人,你的脑子下意识判断TA是男是女;你可能经常会走在路上对身旁的朋友说“这个人一看就很有钱、那边有个非主流”之类的话,其实这就是一种分类操作。

从数学角度来说,分类问题可做如下定义。已知类别集合$C={y_1, y_2, \ldots, y_n}$与项集合$I={x_1, x_2, \ldots, x_m}$,现在要确定一个映射规则$y=f(x)$,使得任意$x_i \in I$有且仅有一个$y_j \in C$使得$y_j=f(x_i)$成立。这里$f$叫做分类器。分类算法的任务就是构造分类器$f$。

朴素贝叶斯分类器

朴素贝叶斯的思想基础是这样的:对于给出的待分类项,求解在此项出现的条件下各个类别出现的概率,哪个最大,就认为此待分类项属于哪个类别。

朴素贝叶斯分类的正式定义如下:

  1. 设$x={a_1, a_2, \ldots, a_m}$为一个待分类项,每个$a$为$x$的一个特征属性;
  2. 有类别集合$C={y_1, y_2, \ldots, y_n}$;
  3. 计算$P(y_1丨x), P(y_2丨x), \ldots, P(y_n丨x)$;
  4. 如果$P(y_k丨x)=max{P(y_1丨x), P(y_2丨x), \ldots, P(y_n丨x)}$,则$x in y_k$。

如何计算第3步中的各个条件概率呢?首先找到一个训练样本集,之后统计各类别下各个特征属性的条件概率,即$P(a_1丨y_1), P(a_2丨y_1), \ldots, P(a_m丨y_1);P(a_1丨y_2), P(a_2丨y_2), \ldots, P(a_m丨y_2); \ldots ; P(a_1丨y_n), P(a_2丨y_n), \ldots, P(a_m丨y_n);$。如果各个特征属性是条件独立的,则根据贝叶斯定理有:

$$P(y_i丨x)=\frac{P(x丨y_i)P(y_i)}{P(x)}$$

因为分母对于所有类别为常数,因为我们只要将分子最大化皆可。又因为各特征属性是条件独立的,所以有:

$$P(x丨y_i)P(y_i)=P(a_1丨y_i), P(a_2丨y_i), \ldots, P(a_m丨y_i)P(y_i)
= P(y_i)\prod_{j=1}^m P(a_j丨y_i) $$

拉普拉斯修正

因为判别公式为连乘计算,那么如果一个特征的计算概率为零,则无论该样本其他属性是什么,最终结果都是“否”,这显然是不合理的。为了避免其他属性携带信息被训练集中未出现的属性值“抹去”,在估计概率值时通常要进行“平滑”,常用拉普拉斯修正。具体来说,令$N$表示训练集$D$中可能的类别数,$N_i$表示第$i$个属性可能的取值数,则可修正为:

$$P(x_i丨c)=\frac{丨D_{c,x_i}+1丨}{丨D_c丨+N_i}$$

对每个类别下所有划分的计数加1,这样如果训练样本集数量充分大时,并不会对结果产生影响,但避免了因训练集样本不充分而导致概率估值为零的问题。

半朴素贝叶斯分类器概述

朴素贝叶斯分类器采用了属性条件独立性假设,但在现实任务中这个假设往往很难成立。于是人们尝试对属性条件独立性假设进行一定程度的放松,由此产生了一类成为“半朴素贝叶斯分类器”的学习方法。

半朴素贝叶斯分类器的基本想法是适当考虑一部分属性间的相互依赖信息,从而即不需要进行完全联合概率计算,有不至于彻底忽略了比较强的属性依赖关系。

“独依赖估计”是半朴素贝叶斯分类器最常用的一种策略。所谓“独依赖”就是假设每个属性在类别之外最多依赖一个其他的属性。最直接的做法就是假设所有属性都依赖于同一个属性,称为“超父”,然后通过交叉验证等模型选择方法来确定超父属性。