前言
朴素贝叶斯是一类假设特征之间具有统计独立性的有监督方法。因此,朴素贝叶斯的使用条件就是假设不同特征之间具有统计独立性
。
贝叶斯决策理论
我们以二分类为例介绍贝叶斯决策理论。贝叶斯公式
具有如下形式:
P ( y j ∣ x ) = p ( x ∣ y j ) P ( y j ) p ( x ) P\left(y_{j} \mid x\right)=\frac{p\left(x \mid y_{j}\right) P\left(y_{j}\right)}{p(x)} P(yj∣x)=p(x)p(x∣yj)P(yj)
其中 p ( x ) = ∑ j = 1 2 p ( x ∣ y j ) P ( y j ) p(x)=\sum_{j=1}^{2} p\left(x \mid y_{j}\right) P\left(y_{j}\right) p(x)=∑j=12p(x∣yj)P(yj) 是一个全概率公式。
我们可以将上述公式用文字来表达:
posterior
=
likelihood
×
prior
evidence
\text { posterior }=\frac{\text { likelihood } \times \text { prior }}{\text { evidence }}
posterior = evidence likelihood × prior
即后验概率等于先验概率乘以类条件概率,再除以归一化因子(常数)。
最小风险准则
设 α 1 \alpha_1 α1是将当前结果分为第一类的动作, α 2 \alpha_2 α2是将当前结果分为第二类的动作, λ i j = λ ( α i ∣ y j ) \lambda_{ij}=\lambda(\alpha_i|y_j) λij=λ(αi∣yj) 为将 y i y_i yi类分为第i类所付出的损失(loss)。
则把当前样本分为第1类和第2类的损失分别为:
R
(
α
1
∣
x
)
=
λ
11
P
(
y
1
∣
x
)
+
λ
12
P
(
y
2
∣
x
)
R
(
α
2
∣
x
)
=
λ
21
P
(
y
1
∣
x
)
+
λ
22
P
(
y
2
∣
x
)
\begin{array}{l} R\left(\alpha_{1} \mid \mathbf{x}\right)=\lambda_{11} P\left(y_{1} \mid \mathbf{x}\right)+\lambda_{12} P\left(y_{2} \mid \mathbf{x}\right) \\ R\left(\alpha_{2} \mid \mathbf{x}\right)=\lambda_{21} P\left(y_{1} \mid \mathbf{x}\right)+\lambda_{22} P\left(y_{2} \mid \mathbf{x}\right) \end{array}
R(α1∣x)=λ11P(y1∣x)+λ12P(y2∣x)R(α2∣x)=λ21P(y1∣x)+λ22P(y2∣x)
根据最小风险准则,我们应该把当前样本分为损失最小的一类。例如,当 R ( α 1 ∣ X ) < R ( α 2 ∣ X ) R(\alpha_1 | X) < R(\alpha_2|X) R(α1∣X)<R(α2∣X)时,我们把当前样本x分为第一类。
即:
λ
21
P
(
y
1
∣
x
)
+
λ
22
P
(
y
2
∣
x
)
>
λ
11
P
(
y
1
∣
x
)
+
λ
12
P
(
y
2
∣
x
)
\lambda_{21} P\left(y_{1} \mid \mathbf{x}\right)+\lambda_{22} P\left(y_{2} \mid \mathbf{x}\right) > \lambda_{11} P\left(y_{1} \mid \mathbf{x}\right)+\lambda_{12} P\left(y_{2} \mid \mathbf{x}\right)
λ21P(y1∣x)+λ22P(y2∣x)>λ11P(y1∣x)+λ12P(y2∣x)
或:
(
λ
21
−
λ
11
)
P
(
y
1
∣
x
)
>
(
λ
12
−
λ
22
)
P
(
y
2
∣
x
)
\left(\lambda_{21}-\lambda_{11}\right) P\left(y_{1} \mid \mathbf{x}\right)>\left(\lambda_{12}-\lambda_{22}\right) P\left(y_{2} \mid \mathbf{x}\right)
(λ21−λ11)P(y1∣x)>(λ12−λ22)P(y2∣x)
我们把后验概率写成条件概率与先验概率的乘积,还可以得到如下判别方式:
(
λ
21
−
λ
11
)
p
(
x
∣
y
1
)
P
(
y
1
)
>
(
λ
12
−
λ
22
)
p
(
x
∣
y
2
)
P
(
y
2
)
\left(\lambda_{21}-\lambda_{11}\right) p\left(\mathbf{x} \mid y_{1}\right) P\left(y_{1}\right)>\left(\lambda_{12}-\lambda_{22}\right) p\left(\mathbf{x} \mid y_{2}\right) P\left(y_{2}\right)
(λ21−λ11)p(x∣y1)P(y1)>(λ12−λ22)p(x∣y2)P(y2)
p ( x ∣ y 1 ) p ( x ∣ y 2 ) > λ 12 − λ 22 λ 21 − λ 11 P ( y 2 ) P ( y 1 ) \frac{p\left(\mathbf{x} \mid y_{1}\right)}{p\left(\mathbf{x} \mid y_{2}\right)}>\frac{\lambda_{12}-\lambda_{22}}{\lambda_{21}-\lambda_{11}} \frac{P\left(y_{2}\right)}{P\left(y_{1}\right)} p(x∣y2)p(x∣y1)>λ21−λ11λ12−λ22P(y1)P(y2)
最小误差(最大后验概率)准则
根据最小误差(最大后验概率)准则,分类判断如下:
Decide
y
i
if
P
(
y
i
∣
x
)
>
P
(
y
j
∣
x
)
for all
j
≠
i
\begin{aligned} &\text { Decide } y_{i} \text { if } P\left(y_{i} \mid \mathbf{x}\right)>P\left(y_{j} \mid \mathbf{x}\right) &\text { for all } j \neq i \end{aligned}
Decide yi if P(yi∣x)>P(yj∣x) for all j=i
实际上,当我们设置 λ i i = 0 \lambda_{ii}=0 λii=0 且 λ i j = 1 ( j ≠ i ) \lambda_{ij}=1 (j\neq i) λij=1(j=i)时,可以发现最大后验概率准则和最小风险准则之间就联系起来了。
朴素贝叶斯
推导过程
朴素贝叶斯分类器的核心概念在于其假设特征之间相互独立,因此可以相应简化贝叶斯公式
我们将贝叶斯公式中的特征向量 x x x展开,有:
P ( y ∣ x 1 , … , x n ) = P ( y ) P ( x 1 , … x n ∣ y ) P ( x 1 , … , x n ) P\left(y \mid x_{1}, \ldots, x_{n}\right)=\frac{P(y) P\left(x_{1}, \ldots x_{n} \mid y\right)}{P\left(x_{1}, \ldots, x_{n}\right)} P(y∣x1,…,xn)=P(x1,…,xn)P(y)P(x1,…xn∣y)
对于等式右边分子的部分,可以用联合概率表示如下:
P ( y ) P ( x 1 , . . . x n ∣ y ) = P ( x 1 , . . . , x n , y ) \begin{aligned} P(y)P(x_1, ...x_n | y) &= P(x_1, ..., x_n, y) \\ \end{aligned} P(y)P(x1,...xn∣y)=P(x1,...,xn,y)
然后不断用链式法则, 有:
P ( y ) P ( x 1 , . . . x n ∣ y ) = P ( x 1 , . . . , x n , y ) = P ( x 1 ∣ x 2 , . . . , x n , y ) P ( x 2 , . . . , x n , y ) = P ( x 1 ∣ x 2 , . . . , x n , y ) P ( x 2 ∣ x 3 , . . . , x n , y ) = . . . = P ( x 1 ∣ x 2 , . . . , x n , y ) P ( x 2 ∣ x 3 , . . . , x n , y ) . . . P ( x n ∣ y ) P ( y ) \begin{aligned} P(y)P(x_1, ...x_n | y) &= P(x_1, ..., x_n, y) \\ & = P(x_1 | x_2, ..., x_n, y)P(x_2, ..., x_n, y) \\ & = P(x_1 | x_2, ..., x_n, y)P(x_2|x_3, ..., x_n, y) \\ & = ... \\ & = P(x_1 | x_2, ..., x_n, y)P(x_2|x_3, ..., x_n, y) ... P(x_n | y)P(y) \end{aligned} P(y)P(x1,...xn∣y)=P(x1,...,xn,y)=P(x1∣x2,...,xn,y)P(x2,...,xn,y)=P(x1∣x2,...,xn,y)P(x2∣x3,...,xn,y)=...=P(x1∣x2,...,xn,y)P(x2∣x3,...,xn,y)...P(xn∣y)P(y)
由于特征之间相互独立,则:
P ( x i ∣ x i + 1 , x n , y ) = P ( x i ∣ y ) P(x_i | x_{i+1}, x_n, y) = P(x_i | y) P(xi∣xi+1,xn,y)=P(xi∣y)
因此:
P ( y ) P ( x 1 , . . . x n ∣ y ) = P ( x 1 , . . . , x n , y ) = P ( x 1 ∣ x 2 , . . . , x n , y ) P ( x 2 ∣ x 3 , . . . , x n , y ) . . . P ( x n ∣ y ) P ( y ) = P ( x 1 ∣ y ) P ( x 2 ∣ y ) . . . P ( x n ∣ y ) P ( y ) = P ( y ) Π i = 1 n P ( x i ∣ y ) \begin{aligned} P(y)P(x_1, ...x_n | y) &= P(x_1, ..., x_n, y) \\ & = P(x_1 | x_2, ..., x_n, y)P(x_2|x_3, ..., x_n, y) ... P(x_n | y)P(y) \\ & = P(x_1 | y)P(x_2|y)...P(x_n|y)P(y) \\ & = P(y)\Pi_{i=1}^{n}P(x_i|y) \end{aligned} P(y)P(x1,...xn∣y)=P(x1,...,xn,y)=P(x1∣x2,...,xn,y)P(x2∣x3,...,xn,y)...P(xn∣y)P(y)=P(x1∣y)P(x2∣y)...P(xn∣y)P(y)=P(y)Πi=1nP(xi∣y)
我们把常数归一化因子 P ( x 1 , . . . , x n ) P(x_1, ..., x_n) P(x1,...,xn)去掉,则有:
P ( y ∣ x 1 , … , x n ) ∝ P ( y ) ∏ i = 1 n P ( x i ∣ y ) P\left(y \mid x_{1}, \ldots, x_{n}\right) \propto P(y) \prod_{i=1}^{n} P\left(x_{i} \mid y\right) P(y∣x1,…,xn)∝P(y)i=1∏nP(xi∣y)
根据最大后验概率准则,可以得到如下分类方程:
y
^
=
arg
max
y
P
(
y
)
∏
i
=
1
n
P
(
x
i
∣
y
)
\hat{y}=\arg \max _{y} P(y) \prod_{i=1}^{n} P\left(x_{i} \mid y\right)
y^=argymaxP(y)i=1∏nP(xi∣y)
这样,我们只需要估计出先验概率P(y)和类条件概率p(x_y),即可完成分类任务。
给定训练样本之后,P(y)可以通过类别y在整个训练集中出现的频率来估计。
而由于p(x_i|y)是概率密度函数,我们可以通过最大似然估计(MLE)或最大后验估计(MAP)估计得到。
由于概率密度估计需要提前知道概率密度函数的形式,实际操作中,不同的概率密度函数形式就代表着不同的贝叶斯形式,如高斯朴素贝叶斯,多项式朴素贝叶斯等。
高斯朴素贝叶斯
高斯朴素贝叶斯假设特征的类条件概率服从高斯分布,即:
P ( x i ∣ y ) = 1 2 π σ y 2 exp ( − ( x i − μ y ) 2 2 σ y 2 ) P\left(x_{i} \mid y\right)=\frac{1}{\sqrt{2 \pi \sigma_{y}^{2}}} \exp \left(-\frac{\left(x_{i}-\mu_{y}\right)^{2}}{2 \sigma_{y}^{2}}\right) P(xi∣y)=2πσy21exp(−2σy2(xi−μy)2)
实例分析
- 朴素贝叶斯用于垃圾邮件分类。
思考
- 朴素贝叶斯方法的优势是什么?
参考文献
- R. O. Duda, P. E. Hart, and D. G. Stork, Pattern Classification. John Wiley & Sons, 2012.
- Naive Bayes
- 机器学习 | 算法笔记- 朴素贝叶斯(Naive Bayesian)