朴素贝叶斯
介绍
朴素贝叶斯分类器是一种基于贝叶斯定理和特征条件独立性假设的分类算法。在分类问题中,朴素贝叶斯分类器是最常用和最简单的分类器之一。
推导
假设我们有一个包含 m m m 个训练样本的数据集,每个训练样本都有 n n n 个特征。我们的目标是将每个样本分为 k k k 个不同的类别中的一个。朴素贝叶斯分类器的目标就是预测一个新的样本所属的类别。
在朴素贝叶斯分类器中,我们使用贝叶斯定理来计算样本属于每个类别的概率,并选择具有最高概率的类别作为预测结果。贝叶斯定理如下所示:
P
(
y
∣
x
)
=
P
(
x
∣
y
)
P
(
y
)
P
(
x
)
P(y|x) = \frac{P(x|y)P(y)}{P(x)}
P(y∣x)=P(x)P(x∣y)P(y)
其中,
P
(
y
∣
x
)
P(y|x)
P(y∣x) 是给定特征
x
x
x 后类别
y
y
y 的后验概率,
P
(
x
∣
y
)
P(x|y)
P(x∣y) 是类别
y
y
y 的条件概率,
P
(
y
)
P(y)
P(y) 是类别
y
y
y 的先验概率,
P
(
x
)
P(x)
P(x) 是特征
x
x
x 的边缘概率。
为了方便计算,我们通常假设特征之间是条件独立的。这意味着我们可以将类别
y
y
y 的条件概率表示为特征
x
1
,
x
2
,
.
.
.
,
x
n
x_1,x_2,...,x_n
x1,x2,...,xn 的条件概率的乘积:
P
(
x
1
,
x
2
,
.
.
.
,
x
n
∣
y
)
=
∏
i
=
1
n
P
(
x
i
∣
y
)
P(x_1,x_2,...,x_n|y)=\prod_{i=1}^n P(x_i|y)
P(x1,x2,...,xn∣y)=i=1∏nP(xi∣y)
根据朴素贝叶斯分类器的假设,我们可以将样本
x
x
x 分类为具有最高后验概率的类别
y
^
\hat{y}
y^,即:
y
^
=
a
r
g
max
y
∈
Y
P
(
y
∣
x
)
=
a
r
g
max
y
⊂
Y
P
(
x
∣
y
)
P
(
y
)
P
(
x
)
\hat{y}=arg\max_{y\in Y}P(y|x)=arg\max_{y\subset Y}\frac{P(x|y)P(y)}{P(x)}
y^=argy∈YmaxP(y∣x)=argy⊂YmaxP(x)P(x∣y)P(y)
在实际计算中,我们只需要比较
P
(
x
∣
y
)
P
(
y
)
P(x|y)P(y)
P(x∣y)P(y) 的大小即可,因为
P
(
x
)
P(x)
P(x) 对于所有的类别都是相同的。
接下来,我们需要估计条件概率 P ( x i ∣ y ) P(x_i|y) P(xi∣y) 和先验概率 P ( y ) P(y) P(y)。在估计条件概率时,通常使用极大似然估计或贝叶斯估计。在这里,我们将使用极大似然估计来估计条件概率。
对于一个二元分类问题,我们可以将类别
y
y
y 分别表示为正类和负类,即
y
∈
1
,
−
1
y \in {1,-1}
y∈1,−1。此时,条件概率
P
(
x
i
∣
y
)
P(x_i|y)
P(xi∣y) 可以表示为以下形式:
P
(
x
i
∣
y
)
=
∑
j
=
1
m
1
(
x
i
(
j
)
=
a
k
,
y
(
j
)
=
y
)
∑
j
=
1
m
1
(
y
(
j
)
=
y
)
P(x_i|y)=\frac{\sum_{j=1}^{m} \mathbb{1}(x_i^{(j)}=a_k,y^{(j)}=y)}{\sum_{j=1}^{m} \mathbb{1}(y^{(j)}=y)}
P(xi∣y)=∑j=1m1(y(j)=y)∑j=1m1(xi(j)=ak,y(j)=y)
其中, x i ( j ) x_i^{(j)} xi(j) 表示第 j j j 个样本的第 i i i 个特征值, y ( j ) y^{(j)} y(j) 表示第 j j j 个样本的类别, 1 ( ⋅ ) \mathbb{1}(\cdot) 1(⋅) 是指示函数,当括号中的条件成立时,取值为 1 1 1,否则取值为 0 0 0。即 x i ( j ) = a k x_i^{(j)}=a_k xi(j)=ak 且 y ( j ) = y y^{(j)}=y y(j)=y 时, 1 ( x i ( j ) = a k , y ( j ) = y ) = 1 \mathbb{1}(x_i^{(j)}=a_k,y^{(j)}=y)=1 1(xi(j)=ak,y(j)=y)=1,否则为 0 0 0。
这个公式的意义是,对于每个特征 i i i 和类别 y y y,我们统计所有属于类别 y y y 且特征 i i i 取值为 a k a_k ak 的样本的数量,并将其除以属于类别 y y y 的样本总数,得到特征 i i i 取值为 a k a_k ak 且类别为 y y y 的条件概率。
在估计先验概率
P
(
y
)
P(y)
P(y) 时,我们可以使用以下公式:
P
(
y
)
=
∑
j
=
1
m
1
(
y
(
j
)
=
y
)
m
P(y)=\frac{\sum_{j=1}^m1(y^{(j)}=y)}{m}
P(y)=m∑j=1m1(y(j)=y)
这个公式的意义是,统计所有类别为
y
y
y 的样本的数量,并将其除以样本总数
m
m
m,得到类别为
y
y
y 的先验概率。
最后,我们可以将条件概率和先验概率代入贝叶斯定理,计算后验概率 P ( y ∣ x ) P(y|x) P(y∣x),并选择具有最高后验概率的类别作为预测结果。
需要注意的是,在实际应用中,我们通常需要进行平滑处理,以避免出现概率为 0 0 0 的情况。常用的平滑方法包括拉普拉斯平滑和贝叶斯平滑。
以上就是朴素贝叶斯分类器的推导过程。虽然朴素贝叶斯分类器做出了强烈的特征独立性假设,但在实际应用中,它仍然表现出了良好的分类性能,并被广泛应用于文本分类、垃圾邮件过滤等领域。