1. 贝叶斯决策论
考虑一个简单的二分类问题,假设有一个输入向量 $x$,我们的目标是对于 $x$ 预测它的类别 $y$,其中 $y = {C_1, C_2}$。现在我们有一个算法对 $x$ 进行了分类,这个算法会把输入空间划分为不同的区域 $R_k$,区域 $R_k$ 中的所有点都被分类为 $C_k$。假设现在我们有个输入,根据算法它被划分在区域 $R_1$,即我们的决策结果为 $C_1$,但实际上它是 $C_2$ 类,这样我们就犯了分类错误,反之亦然。在决策过程中,我们希望能最小化错误分类率 $p(mistake)$:
\begin{equation}
\begin{split}
p(mistake) &= p( x \in R_1,C_2) + p( x \in R_2,C_1)
\\
&= \int_{R_1} p(C_2,x) ~dx +\int_{R_2} p(C_1,x) ~dx
\end{split}
\end{equation}
即 $R_1$ 区域中,实际类别为 $C_2$ 的样本尽量少;$R_2$ 区域中,实际类别为 $C_1$ 的样本尽量少。
实际情况中,我们面对的情况要比最小化错误率复杂,因为把 $C_1$ 类错分了 $C_2$ 类和把 $C_2$ 类错分为 $C_1$ 类的代价是不一样。我们需要对不同的错误加一个权值,这就是期望损失 (expected loss):
\begin{equation}
EL = \int_{R_1} \color{red}{\lambda_{21}}~ p(C_2,x) ~dx +\int_{R_2}\color{red}{\lambda_{12}}~ p(C_1,x) ~dx
\end{equation}
其中,$\lambda_{21}$ 是将一个真实标记为 $C_1$ 误分类为 $C_2$ 的损失,反之同理。
更一般地,对于 $K$ 类的问题,期望损失为:
\begin{equation}
EL = \sum_{k} \sum_{j} \int_{R_j} \lambda_{kj}~~p( C_k, x)~ dx
\end{equation}
对于每一个样本 $x$,我们要将其划分到决策区域 $R$ 中,那么划分到 $R_1$ 还是 $R_2$ ……中呢?我们希望期望损失能够最小化。也就是说,对于每个 $x$,我们将其划分到 $R_j$ 中,这样的结果下其期望损失最小:
\begin{equation}
arg~ \min ~\sum_k~\lambda_{kj}~p( C_k, x)
\end{equation}
将联合概率形式写成条件概率:
\begin{equation}
arg~ \min ~\sum_k~\lambda_{kj}~p(C_k \mid x)~p(x)
\label{5}
\end{equation}
注意到 $p(x)$ 对于所有项都相同,最小化 (\ref{5}) 式等价于:
\begin{equation}
arg~ \min ~\sum_k~\lambda_{kj}~p(C_k \mid x)
\label{6}
\end{equation}
2. 后验概率最大化
若我们的损失函数简化为:
\begin{equation}
\lambda_{kj} = \begin{cases}1,&k≠j\0,&k=j\end{cases}
\end{equation}
(\ref{6}) 式等价于:
\begin{equation}
\begin{split}
f(x) &= arg~ \min ~\sum_k~\lambda_{kj}~p(C_k \mid x) \\
& = arg~ \min ~\sum_{k\neq j}~ p(C_k \mid x)
\\
& = arg~ \min ~[1- p(C_{k = j} \mid x)]
\\
& = arg \max p(C_j \mid x)
\end{split}
\end{equation}
对于每个 $x$,我们将其划分到 $R_j$ 中,最大化 $p(C_j \mid x)$ 就能够使得期望损失最小化。也就是说,后验概率最大等价于 $0-1$ 损失函数时的期望损失最小。记决策结果为 $c= R_j$,我们需要最大化 $p(c \mid x)$。在现实任务中,$p(c \mid x)$ 通常难以直接获取,需要使用贝叶斯公式。
基于贝叶斯定理,有:
\begin{equation}
p(c \mid x) = \frac{p(c) ~p(x \mid c)}{p(x)}
\end{equation}
其中 $p(c \mid x)$ 称之为后验概率。
3. 朴素贝叶斯分类器
为了得到我们的模型,需要最大化后验概率,因为:
\begin{equation} p(c \mid x) \propto p(c) ~p(x \mid c) \end{equation}
最大化后验概率等价于:
\begin{equation}
\label{11}
arg \max p(c) ~p(x \mid c) \end{equation}
也就是需要估计先验概率 $p(c)$ 和类条件概率 $p(x \mid c)$。针对具体问题,类条件概率 $p(x \mid c)$ 是所有特征 $x$ 上的联合概率,难以从有限的样本直接估计而得。为避开这个问题,朴素贝叶斯分类器采用了特征独立性假设:即对已知类别,假设所有属性相互独立。基于该假设,(\ref{11}) 式重写为:
\begin{equation}
arg \max p(c) ~\prod_{i=1}^d p(x_i \mid c)
\end{equation}
因此,朴素贝叶斯分类器的训练过程就是基于数据集 D
来估算先验概率 $p(c)$ 和每个属性的条件概率 $p(x_i \mid c)$。
假设训练过程已经完成,有一个新的输入 $x={x_1, x_2, x_3\cdots}$,需要采用朴素贝叶斯来进行二分类 $y = {0,1}$,其过程为:
- 根据训练的结果:先验概率和每个属性的条件概率,计算 $p(0) ~\prod\limits_{i=1}^d p(x_i \mid 0)$;
- 根据训练的结果:先验概率和每个属性的条件概率,计算 $p(1) ~\prod\limits_{i=1}^d p(x_i \mid 1)$;
- 那个大划分为那类。
参考资料
[1] 《机器学习》, 周志华
[2] Pattern Recognition and Machine Learning, Christopher M. Bishop.