【机器学习06--贝叶斯分类器】
文章目录
基础理解
本章我们开始介绍贝叶斯分类器,贝叶斯分类器是一种基于概率论的方法,整个方法的基础是贝叶斯定理:
P
(
C
∣
X
)
=
P
(
X
∣
C
)
P
(
C
)
P
(
X
)
P(C|X)=\frac{P(X|C)P(C)}{P(X)}
P(C∣X)=P(X)P(X∣C)P(C),即根据先验概率和条件概率推测后验概率,这里的先验概率一般由经验或知识得到,也就是这里的
P
(
C
)
P(C)
P(C),表示C这个类别出现的概率,
P
(
X
∣
C
)
P(X|C)
P(X∣C)表示条件概率,表示的意思是知道这个样本的类别的条件下,特征出现的概率,注意,这里的特征一般有多个,所以是一个联合条件概率,
P
(
X
)
P(X)
P(X)表示的是所有特征的联合概率,这个值对所有类别都是相同的。
接下来,我们开始讲解贝叶斯分类器的一些内容。
01 贝叶斯决策论
我们学了这么多章了,相比大家也发现了,我们每一次学习一个机器学习模型,它必然都会定义一个损失函数,所谓本章也是,为贝叶斯分类器定义一个损失函数,更准确的说,应该叫做优化目标。
我们还是以分类任务为例,假设我们得到了一个样本,现在需要判断这个样本的类别C,假设我们将其判断为了
c
i
c_i
ci,实际上该类别为
c
j
c_j
cj,那么就会产生一个判断错误的风险,我们的目标就是让训练集上的这个累积风险最小,这样讲显得太复杂了,我们直接给出最小化分类错误率的贝叶斯最优分类器为:
h
∗
(
x
)
=
a
r
g
m
a
x
c
∈
y
P
(
c
∣
x
)
h^*(x)=argmax_{c\in yP(c|x)}
h∗(x)=argmaxc∈yP(c∣x)
说了这么多,其实就是使得正确分类的后验概率最大。
02 极大似然估计
什么是似然估计呢?我们假设观测到了某些样本,并且知道这些样本来自于同一分布,我们现在需要估计这个分布的参数,使得这些样本出现的概率最大,这就是似然估计。
表示为:
P
(
D
c
∣
θ
)
=
∏
x
∈
D
C
P
(
x
∣
θ
)
P(D_c|\theta)=\prod_{x\in D_C} P(x|\theta)
P(Dc∣θ)=x∈DC∏P(x∣θ)
我现在想最大化这个概率,所以就叫做极大似然估计,但是直接优化它有个问题,就是这里的概率每一个都是小于1的,如果数量很多,那么就会造成下溢,其实就是数字会变得特别小,计算机都不好表示了。
所以用另一种方式表示,叫做对数似然:
L
L
(
θ
)
=
∑
x
∈
D
c
l
o
g
P
(
x
∣
C
)
LL(\theta)=\sum_{x\in D_c} logP(x|C)
LL(θ)=x∈Dc∑logP(x∣C)
此时极大似然估计为:
θ
^
=
a
r
g
m
a
x
θ
L
L
(
θ
)
\hat{\theta}=argmax_{\theta}LL(\theta)
θ^=argmaxθLL(θ)
比如假设概率密度函数服从正太分布,那么通过极大似然估计得到的均值为样本均值,方差为样本方差。
03 朴素贝叶斯分类器
综上所述,在得到样本后,我们要对其特征进行分析,然后判断这个样本属于哪一类,也就是我们需要计算出
P
(
c
∣
X
)
P(c|X)
P(c∣X),那么我们就可以用贝叶斯定理去判断,就看哪一个类得到的概率大,我们就觉得它属于那一个类,那么也就是说我们要知道
P
(
c
)
,
P
(
X
∣
c
)
P(c),P(X|c)
P(c),P(X∣c),分别是这一类它的概率和这一类下,各个特征的取值的联合概率。
这里就有问题了,你其实很难取根据得到的样本,去计算出这里的联合概率,准确的说,应该是统计出这里的联合概率,因为每一个特征取值多样,你对其进行组合,然后你根据样本中出现的组合的频率来近似这个概率,那很难准确的近似,因为你的组合数太多了,但是样本数很难达到那么多,此时大数定理就不能用了,那我们应该怎么去得到这里的先验概率呢.
这里提出了一种方法叫做朴素贝叶斯分类器,他有一个很关键的假设条件叫做:
属性特征独立性假设
即:每一个属性独立的对分类结果产生影响。
那么这里的条件概率
P
(
X
∣
c
)
=
∏
P
(
x
i
∣
c
)
P(X|c)=\prod P(x_i|c)
P(X∣c)=∏P(xi∣c)
就可以用样本中出现的频率来进行估计了。
`为了避免有些属性在样本中没有出现,从而导致估计的该属性出现的概率为0,导致后面判断失效的问题,在估计的时候通常要进行修正,常用拉普拉斯修正,比如某一个属性
x
i
x_i
xi,用
N
i
N_i
Ni表示该属性可以取到的值的数量,此时估计该属性的条件概率为:
P
(
x
i
∣
c
)
=
∣
D
c
∣
+
1
∣
D
∣
+
N
i
P(x_i|c)=\frac{|D_c|+1}{|D|+N_i}
P(xi∣c)=∣D∣+Ni∣Dc∣+1
04 半朴素贝叶斯分类器
简单来说就是假设有些属性是独立的,有些是不独立的,每一个属性在类别之外最多仅依赖于一个其他属性。
05 贝叶斯网
贝叶斯网用有向无环图来刻画属性之间的关系,应该不会考吧,用到了再学吧
06 EM算法
EM算法等用到了再学习吧,大致思路是在有些属性特征的值没有办法准确的观测到的时候,通过EM来估计参数隐变量。
补充修正
1. 贝叶斯定理与分类的基本概念
首先,您的贝叶斯定理的公式解释是正确的: P ( C ∣ X ) = P ( X ∣ C ) P ( C ) P ( X ) P(C|X) = \frac{P(X|C)P(C)}{P(X)} P(C∣X)=P(X)P(X∣C)P(C)
这里的各个部分意义明确:
- P ( C ∣ X ) P(C|X) P(C∣X) 是后验概率,表示在给定样本特征 X X X 的情况下,样本属于类别 C C C 的概率。
- P ( X ∣ C ) P(X|C) P(X∣C) 是似然函数,表示在已知类别 C C C 的情况下,观察到特征 X X X 的概率。
- P ( C ) P(C) P(C) 是先验概率,表示类别 C C C 出现的概率,通常依赖于历史数据或先验知识。
- P ( X ) P(X) P(X) 是特征的总概率,也就是所有类别下,特征 X X X 出现的概率,通常是常数,因为它在所有类别中相同,主要用于归一化。
您的理解中提到, P ( X ) P(X) P(X) 对所有类别是相同的,这是正确的,因为在分类任务中,目标是比较不同类别的后验概率,从而找到最大值。因此, P ( X ) P(X) P(X) 对所有类别的影响相同,可以忽略。
2. 贝叶斯决策论
关于贝叶斯决策论的部分,您的总结大体是准确的。您提到的优化目标是通过最大化后验概率来选择分类结果: h ∗ ( x ) = arg max c ∈ Y P ( c ∣ x ) h^*(x) = \arg \max_{c \in Y} P(c|x) h∗(x)=argc∈YmaxP(c∣x)
这个表达式的意思是:对于每一个样本 x x x,我们选择使得后验概率 P ( c ∣ x ) P(c|x) P(c∣x) 最大的类别 c c c 作为预测结果。通过最大化后验概率来做出最优决策,这是贝叶斯分类器的核心。
3. 极大似然估计
您的极大似然估计(MLE)部分描述也非常到位。为了估计一个模型的参数 θ \theta θ,我们通常通过最大化样本出现的概率来进行参数估计。您提到的公式: P ( D C ∣ θ ) = ∏ x ∈ D C P ( x ∣ θ ) P(D_C|\theta) = \prod_{x \in D_C} P(x|\theta) P(DC∣θ)=x∈DC∏P(x∣θ)
这里, P ( x ∣ θ ) P(x|\theta) P(x∣θ) 表示给定参数 θ \theta θ 的条件概率, D C D_C DC 表示类别 C C C 中的所有样本, P ( D C ∣ θ ) P(D_C|\theta) P(DC∣θ) 表示这些样本在参数 θ \theta θ 下的联合概率。
您的理解也提到了计算时可能出现的“下溢”问题,这实际上是因为多次乘法可能导致数值非常小,进而引发计算上的困难。为此,使用对数似然函数: L L ( θ ) = ∑ x ∈ D C log P ( x ∣ θ ) LL(\theta) = \sum_{x \in D_C} \log P(x|\theta) LL(θ)=x∈DC∑logP(x∣θ)
这种转化有效避免了下溢问题,并且优化过程在对数空间中同样有效。
4. 朴素贝叶斯分类器
您对于朴素贝叶斯分类器的描述是准确的。朴素贝叶斯的关键假设是属性特征独立性假设,即假设所有特征在给定类别的条件下是独立的。因此,条件概率可以写成: P ( x i ∣ C ) P ( X ∣ C ) = ∏ i = 1 n P(xi∣C)P(X|C) = \prod_{i=1}^{n} P(xi∣C)P(X∣C)=i=1∏n
这种假设简化了模型,因为它避免了计算高维特征空间中的联合概率,这在实际中往往难以做到。您还提到,由于样本的有限性,直接计算联合概率可能会导致数据稀疏问题,因此引入了拉普拉斯修正来解决这个问题。拉普拉斯修正的公式为: P ( x i ∣ C ) = ∣ D C ∣ + 1 ∣ D ∣ + N i P(x_i|C) = \frac{|D_C| + 1}{|D| + N_i} P(xi∣C)=∣D∣+Ni∣DC∣+1
这里, ∣ D C ∣ |D_C| ∣DC∣ 是类别 C C C 中样本的数量, ∣ D ∣ |D| ∣D∣ 是所有样本的数量, N i N_i Ni 是第 i i i 个特征的取值数量。通过这种方式,即使某些特征在训练数据中没有出现(即频率为零),也能确保条件概率不为零,从而避免了问题。
5. 半朴素贝叶斯分类器
关于半朴素贝叶斯分类器的部分,您的解释是正确的。与朴素贝叶斯不同,半朴素贝叶斯假设某些特征是独立的,而另一些特征则可能存在依赖关系。具体地说,半朴素贝叶斯假设每个属性最多仅依赖于其他一个属性,因此它放宽了“所有特征独立”的假设。这种方法能在某些问题中提供更好的效果,尤其是在特征之间存在相关性的情况下。
6. 贝叶斯网
您提到的贝叶斯网是基于有向无环图(DAG)来表示变量之间的条件依赖关系。在贝叶斯网中,每个节点代表一个随机变量,边代表变量之间的依赖关系。通过贝叶斯网,可以有效建模复杂的多变量概率模型,适用于有复杂依赖关系的任务。
虽然这部分内容您提到“不会考吧”,但它为更复杂的贝叶斯推理提供了基础,理解贝叶斯网对于理解多变量概率模型非常重要。
7. EM算法
最后,关于EM算法(期望最大化算法)的部分,您的描述也准确。EM算法用于在数据中存在隐变量或缺失数据的情况下估计模型参数。它通过两个步骤迭代进行:
- E步(期望步):在当前参数估计下,计算隐变量的期望。
- M步(最大化步):根据期望值最大化对数似然函数,从而更新参数。
EM算法广泛应用于参数估计问题,如高斯混合模型(GMM)等。
面试常考
1.贝叶斯定理是什么?能否用它来解释如何做分类决策?
解答要点:贝叶斯定理通过计算后验概率来推断某个事件发生的概率。在分类中,通过比较各个类别的后验概率,选择最大概率的类别作为预测结果。公式为:
P
(
C
∣
X
)
=
P
(
X
∣
C
)
P
(
C
)
P
(
X
)
P(C|X) = \frac{P(X|C)P(C)}{P(X)}
P(C∣X)=P(X)P(X∣C)P(C)
2.朴素贝叶斯分类器的基本假设是什么?
解答要点:朴素贝叶斯分类器假设特征在给定类别的情况下是条件独立的。这就是“属性特征独立性假设”。该假设使得计算联合条件概率变得简化,从而使得贝叶斯分类器可以在高维数据中高效运行。
3.如何计算朴素贝叶斯分类器中的条件概率?
解答要点:朴素贝叶斯分类器中的条件概率是通过样本频率估计的。每个特征的条件概率通过该特征在某类别下出现的频率来估算。如果某个特征值在某类别下从未出现过,可以使用拉普拉斯修正(加1平滑)来避免概率为零的问题。
4.朴素贝叶斯分类器与传统的统计学习方法有什么区别?
解答要点:朴素贝叶斯分类器通过贝叶斯定理和条件独立性假设进行概率推理,主要基于概率模型进行预测。而传统的统计方法(如逻辑回归、支持向量机等)通常依赖于优化目标(如最小化误差、最大化间隔等)进行学习。
5.朴素贝叶斯分类器在哪些场景下适用?
解答要点:朴素贝叶斯分类器适用于特征独立性假设成立的场景。例如,文本分类(如垃圾邮件过滤)就是一个经典应用,因为在文本中,词语之间的相关性通常较低,朴素贝叶斯能够高效地处理大量特征并取得不错的效果。
6.朴素贝叶斯分类器在实际应用中的优缺点是什么?
解答要点:
- 优点:
- 高效性:计算复杂度低,适用于大规模数据。
- 易于理解和实现:基于简单的概率计算,模型解释性强。
- 对小样本和高维特征数据表现良好:在特征之间独立性较强时,能获得较好的性能。
- 缺点:
- **独立性假设过于简单**:现实中很多特征是相关的,这个假设可能导致模型性能下降。
- 零概率问题:如果某个类别下某个特征的某个取值没有出现,朴素贝叶斯会认为该特征不可能出现。使用拉普拉斯修正可以缓解这个问题。
7.如何处理特征之间的相关性问题?
解答要点:当特征之间存在相关性时,可以使用半朴素贝叶斯分类器,该方法允许某些特征之间有依赖关系。也可以考虑使用其他更为复杂的模型,如决策树或支持向量机,这些方法能够处理特征之间的相关性。
8.请推导并解释朴素贝叶斯分类器的决策函数。
解答要点:朴素贝叶斯分类器的决策函数为:
h
∗
(
x
)
=
arg
max
c
∈
C
P
(
C
∣
X
)
h^*(x) = \arg \max_{c \in C} P(C|X)
h∗(x)=argc∈CmaxP(C∣X)根据贝叶斯定理,后验概率可以分解为:
P
(
C
∣
X
)
=
P
(
X
∣
C
)
P
(
C
)
P
(
X
)
P(C|X) = \frac{P(X|C)P(C)}{P(X)}
P(C∣X)=P(X)P(X∣C)P(C) 其中,
P
(
X
)
P(X)
P(X) 对所有类别是常数,因此分类决策最终是选择使得
P
(
X
∣
C
)
P
(
C
)
P(X|C)P(C)
P(X∣C)P(C) 最大的类别
C
C
C。
9.如何在训练中估计条件概率
P
(
X
∣
C
)
P(X|C)
P(X∣C) 和先验概率
P
(
C
)
P(C)
P(C)?
解答要点:条件概率
P
(
X
∣
C
)
P(X|C)
P(X∣C) 可以通过统计类别
C
C
C 中每个特征值出现的频率来估算,先验概率
P
(
C
)
P(C)
P(C) 则通过类别
C
C
C 在所有样本中出现的频率来估算。具体来说:
- P ( C ) = 类别 C 的样本数 总样本数 P(C) = \frac{\text{类别 C 的样本数}}{\text{总样本数}} P(C)=总样本数类别 C 的样本数
-
P
(
x
i
∣
C
)
=
在类别
C
中
x
i
出现的次数
类别 C 中的样本数
P(x_i|C) = \frac{{在类别 C 中 x_i 出现的次数}}{\text{类别 C 中的样本数}}
P(xi∣C)=类别 C 中的样本数在类别C中xi出现的次数
10.如何实现朴素贝叶斯分类器中的拉普拉斯修正?
解答要点:拉普拉斯修正是为了避免某个特征值在某类别下从未出现的问题。修正的公式为: P ( x i ∣ C ) = 在类别 C 中 x i 出现的次数 + 1 类别 C 中的样本数 + N i P(x_i|C) = \frac{{在类别 C 中 x_i 出现的次数} + 1}{\text{类别 C 中的样本数} + N_i} P(xi∣C)=类别 C 中的样本数+Ni在类别C中xi出现的次数+1 其中, N i N_i Ni 是特征 x i x_i xi 的取值数量。通过这种方法,可以确保每个特征的概率都大于零。
11.什么是贝叶斯网,贝叶斯网如何应用于分类任务?
解答要点:贝叶斯网是一种有向无环图(DAG),用于表示变量之间的条件依赖关系。在分类任务中,贝叶斯网能够更加精确地建模特征之间的关系,相比朴素贝叶斯能够捕捉到特征之间的依赖性。贝叶斯网通过局部条件概率分布(CPD)来表示变量之间的依赖关系
12.如何使用EM算法优化贝叶斯分类器的参数?
解答要点:EM算法用于处理隐变量的情况。当数据中存在缺失或不可观测的特征时,EM算法可以迭代地估计隐变量的期望(E步),然后最大化似然函数来更新参数(M步)。该算法在参数估计中非常有效,尤其是在高维数据和复杂模型中。
13.贝叶斯分类器和支持向量机(SVM)相比有什么优缺点?
解答要点:
- 优点:朴素贝叶斯分类器在特征之间独立时表现优异,训练速度非常快,适用于大规模数据。且模型较为简单,易于解释。
- 缺点:当特征之间相关性较强时,朴素贝叶斯的性能较差;而SVM不依赖于特征独立性假设,在高维空间表现出色
原文地址:https://blog.csdn.net/weixin_45697036/article/details/144408518
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!