全面理解贝叶斯分类器

您所在的位置:网站首页 简述朴素贝叶斯分类器的主要思想 全面理解贝叶斯分类器

全面理解贝叶斯分类器

2024-07-15 07:44| 来源: 网络整理| 查看: 265

前言:在机器学习和深度学习中很多时候会运用到贝叶斯分类器中的一些知识,为了更方便的学习后面的知识,本人阅读了西瓜书的贝叶斯分类器,在此过程中,发现有几处概念比较模糊。本文在西瓜书的基础上对贝叶斯分类器进行深入理解和分析。

一、贝叶斯分类器简介

是一类分类算法的总称,这类算法均以贝叶斯定理为理论基础,贝叶斯分类器大致思想是通过先验概率,利用贝叶斯公式计算出后验概率,选择最大后验概率所对应的分类结果。因此这是一类概率算法,若有对一些常用概率公式定理的理解比较模糊的,可参考概型与概率。

二、贝叶斯决策论

概念:是概率框架下实施决策的一个方法。在机器学习中,通过初始化模型对样本进行了概率分类,得到了一系列关于样本的类别概率,然后用贝叶斯决策论方法创建一个类似于损失函数的式子,通过类别概率来最小化这个式子以达到更新模型的效果。 原理介绍:假设训练集中有 n n n类标签,即 Y = { c 1 , c 2 , . . . , c n } Y=\{c_1,c_2,...,c_n\} Y={c1​,c2​,...,cn​}, λ i j \lambda_{ij} λij​表示一个真实标签为 c j c_j cj​的样本误分为 c i c_i ci​所产生的损失。基于后验概率 P ( c i ∣ x ) P(c_i|x) P(ci​∣x)可获得将样本 x x x分类为 c i c_i ci​所产生的期望损失(表示在样本 x x x上的“条件风险”): R ( c i ∣ x ) = ∑ i = 1 n λ i j P ( c i ∣ x ) (1) R(c_i|x)=\sum^n_{i=1}\lambda_{ij}P(c_i|x)\tag1 R(ci​∣x)=i=1∑n​λij​P(ci​∣x)(1)【 ( 1 ) (1) (1)式中需要知道 P ( c i ∣ x ) P(c_i|x) P(ci​∣x),即已知一个样本,得到分类器分类为所有类的概率。】 此时引入一个判定准则 h : X → Y h:X\rightarrow Y h:X→Y,对于所有样本得到一个总体风险函数,即对所有样本的条件风险求均值: R ( h ) = E [ R ( h ( x ) ∣ x ) ] (2) R(h)=E[R(h(x)|x)]\tag2 R(h)=E[R(h(x)∣x)](2) 此时需要找到一个可使总体风险最小的h(判定准则),显然,需最小化总体风险,即对于每个样本 x x x的条件风险需最小化,由此产生了贝叶斯判定准则:为最小化总体风险,只需对每个样本选择那个可是条件风险最小的类别标记,即 h ∗ = a r g   m i n c ∈ y R ( C ∣ x ) (3) h*={arg\ min}_{c\in y}R(C|x)\tag3 h∗=arg minc∈y​R(C∣x)(3)其中h*称为贝叶斯最优分类器,与之对应的总体风险称为贝叶斯风险, 1 − R ( h ∗ ) 1-R(h*) 1−R(h∗)表示分类器所能达到的最好性能(通过机器学习所能产生的模型精度的理论上限) 目标是最小化分类错误率,那么误判损失 λ i j \lambda_{ij} λij​则可表示为 λ i j = { 0 , i f    i = 1 ; 1 , o t h e r w i s e . (4) \lambda_{ij}=\begin{cases} 0,&if\ \ i =1;\\ 1,&otherwise. \end{cases} \tag4 λij​={0,1,​if  i=1;otherwise.​(4)那么此时条件风险则是(P(c|x)表示样本分类为正确标签的概率): R ( C ∣ x ) = 1 − P ( c ∣ x ) (5) R(C|x)=1-P(c|x)\tag5 R(C∣x)=1−P(c∣x)(5)因此,最小化分类错误率的贝叶斯最优分类器为: h ∗ ( x ) = a r g   m a x c ∈ Y P ( c ∣ x ) (6) h*(x)={arg\ max}_{c\in Y}P(c|x)\tag6 h∗(x)=arg maxc∈Y​P(c∣x)(6)此时不难看出,要使用贝叶斯判定准则来最小化决策风险,首先要获得后验概率 P ( c ∣ x ) P(c|x) P(c∣x)。在机器学习中要实现的是基于有限的训练样本集尽可能准确地估计出后验概率 P ( c ∣ x ) P(c|x) P(c∣x)。主要有两种策略:一个是“判别式模型”,给定x,可通过直接建模 P ( c ∣ x ) P(c|x) P(c∣x)来预测c,比如决策树、支持向量机等等;一个是“生成式模型”,先对联合概率分布 P ( x , c ) P(x,c) P(x,c)建模,然后结合先验概率通过相关公式或定理获得后验概率P(c|x),比如本文中的贝叶斯最优分类器。 由条件概率公式和乘法定理, P ( c ∣ x ) P(c|x) P(c∣x)可写为 P ( c ∣ x ) = P ( c ) P ( x ∣ c ) P ( x ) (7) P(c|x)=\frac{P(c)P(x|c)}{P(x)}\tag7 P(c∣x)=P(x)P(c)P(x∣c)​(7)其中 P ( c ) P(c) P(c)是类先验概率; P ( x ∣ c ) P(x|c) P(x∣c)是样本 x x x类条件概率或“似然”,表示在某种类别前提下,某事发生的概率; P ( x ) P(x) P(x)是用于归一化的“证据因子”( x x x可看作是个联合事件,所有属性取值组成事件 x x x, P ( x ) P(x) P(x)则可以用全概率公式表示,但是在判断样本类别标签时与该“证据因子”无关)。此时问题转为如何基于训练数据D来估计先验概率 P ( c ) P(c) P(c)和似然P(x|c)。 对于求 P ( c ) P(c) P(c):当训练集包含充足的独立同分布(指随机过程中,任何时刻的取值都为随机变量,如果这些随机变量服从同一分布,并且互相独立,那么这些随机变量是独立同分布)样本时, P ( c ) P(c) P(c)可通过各类样本出现的频率来进行估计。 对于求 P ( x ∣ c ) P(x|c) P(x∣c):该概率涉及到x的联合概率,假设样本x的d属性都是二值的,则样本空间将由 2 d 2^d 2d种可能取值,然而,在实际应用中,这个值往往远大于训练样本数,因此很多样本的可能取值在训练样本中没有出现,若使用频率来估计P(x|c)显然不可行。(“未被观测到”和“出现概率为零”是不同的),因此需引入极大似然估计来求。

三、极大似然估计

概念:极大似然估计是估计类条件概率的一种常用策略,假定类条件概率具有某种确定的概率分布形式,这种概率分布形式只需通过一组参数即可确定。在实际中数据一般会有噪声干扰,这使得类条件概率的概率分布和特定参数下的概率分布有一定的偏差,而该估计方法认为,只要在数据集给定的情况下,找到这组使概率最大化的参数即可。 为了展现极大似然估计方法的作用和解决机制,此处以求 ( 7 ) (7) (7)式中的 P ( x ∣ c ) P(x|c) P(x∣c)为例。 假设 P ( x ∣ c ) P(x|c) P(x∣c)有确定的分布形式并且被参数向量 θ c \theta_c θc​唯一确定,则任务就变成了利用训练集D估计参数 θ c \theta_c θc​,为了更好的叙述,这里将 P ( x ∣ c ) P(x|c) P(x∣c)记为 P ( x ∣ θ c ) P(x|\theta_c) P(x∣θc​)(表示一个由参数 θ c \theta_c θc​组成的概率密度函数在自变量为 x x x时得概率)。 实际上,概率模型的训练过程就是参数估计过程,而对于参数估计,统计学界的两个学派分别提供了不同解决方案:频率主意学派认为参数虽然未知,但却是客观存在的固定值,因此,可通过优化似然函数等准则确定参数值;贝叶斯学派认为参数是未观察到的随机变量,其本身也可有分布,因此假设参数服从一个先验分布,然后基于观察到的数据来计算参数的后验分布。 这里介绍源自频率主义学派的极大似然估计。令 D c D_c Dc​表示训练集D中第c类样本组成的集合,假设这些样本是独立同分布的,则参数 P ( x ∣ θ c ) P(x|\theta_c) P(x∣θc​)对于数据集 D c D_c Dc​的似然是 P ( D c ∣ θ c ) = ∏ x ∈ D c P ( x ∣ θ c ) (8) P(D_c|\theta_c)=\prod_{x\in D_c}P(x|\theta_c)\tag8 P(Dc​∣θc​)=x∈Dc​∏​P(x∣θc​)(8) 对 θ c \theta_c θc​进行极大似然估计,就是去寻找能最大化似然 P ( D c ∣ θ c ) P(D_c|\theta_c) P(Dc​∣θc​)的参数值 ∗ θ c *\theta_c ∗θc​。在 ( 8 ) (8) (8)式中的连乘操作已造成下溢,因此通常使用对数似然: L L ( θ c ) = ∑ x ∈ D c l o g P ( x ∣ θ c ) (9) LL(\theta_c)=\sum_{x\in D_c }logP(x|\theta_c)\tag9 LL(θc​)=x∈Dc​∑​logP(x∣θc​)(9)

上文中多次提到假设数据独立同分布,那为什么要假设数据独立同分布呢? 机器学习就是利用当前获取到的信息(或数据)进行训练学习,用以预测未来的数据。所以模型都是建立在历史数据之上,然后去拟合未来的数据。这时使用的历史数据需具有总体的代表性。而通过独立同分布的假设,就可以大大减小训练样本具有个例情况出现,使训练数据更具总体代表性。

四、朴素贝叶斯分类器

概念:朴素贝叶斯是一系列以假设特征之间强独立下运用贝叶斯定理为基础的简单概率分类器。 对于 ( 7 ) (7) (7)式中估计后验概率P(c|x)的主要困难在于:类条件概率 P ( x ∣ c ) P(x|c) P(x∣c)是所有属性上的联合概率,难以从有限的训练样本直接估计而得。为避开该问题,提出了“属性条件独立性假设”:对已知类别,假设所有属性相互独立。因此 ( 7 ) (7) (7)式可重写为: P ( c ∣ x ) = P ( c ∣ x ) = P ( c ) P ( x ∣ c ) P ( x ) = P ( c ) P ( x ) ∏ x = 1 d P ( x i ∣ c ) (10) P(c|x)=P(c|x)=\frac{P(c)P(x|c)}{P(x)}=\frac{P(c)}{P(x)}\prod_{x=1}^dP(x_i|c)\tag{10} P(c∣x)=P(c∣x)=P(x)P(c)P(x∣c)​=P(x)P(c)​x=1∏d​P(xi​∣c)(10)其中d为属性数量, x i x_i xi​为 x x x在第i个属性上的取值。由于对所有类别来说 P ( x ) P(x) P(x)相同,因此基于贝叶斯判定准则有: h n e w ( x ) = a r g   m a x c ∈ Y P ( c ) ∏ i = 1 d P ( x i ∣ c ) (11) h_{new}(x)={arg\ max}_{c\in Y}P(c)\prod_{i=1}^dP(x_i|c)\tag{11} hnew​(x)=arg maxc∈Y​P(c)i=1∏d​P(xi​∣c)(11)这就是朴素贝叶斯分类器的表达式。 可以看到朴素贝叶斯分类器的训练过程就是基于训练集 D D D来估计先验概率,并为每个属性估计条件概率 P ( x i ∣ c ) P(x_i|c) P(xi​∣c)。令 D c D_c Dc​表示训练集D中第c类样本组成的集合,假设这些样本是独立同分布的,则很容易估计类先验概率: P ( c ) = ∣ D c ∣ D (12) P(c)=\frac{|D_c|}{D}\tag{12} P(c)=D∣Dc​∣​(12)对于离散属性来说,令D_{c,x_i}表示D_c中在第i个属性上取值为x_i的样本组成的集合,则条件概率 P ( x i ∣ c ) P(x_i|c) P(xi​∣c)可估计为: P ( x i ∣ c ) = ∣ D c , x i ∣ ∣ D ∣ (13) P(x_i|c)=\frac{|D_{c,x_i}|}{|D|}\tag{13} P(xi​∣c)=∣D∣∣Dc,xi​​∣​(13)注意,若某个属性值在训练集中没有与某个类同时出现过,但在测试集中出现了,此时 ( 11 ) (11) (11)连乘式计算出的概率值为零,这显然不合理。因此为了避免其他属性携带的信息被训练集中未出现的属性值“抹去”,在估计概率值时通常要进行“平滑”,常用“拉普拉斯修正”。具体来说,令N为训练集D中的类别数, N i N_i Ni​表示第i个属性可能的取值数,则式 ( 12 ) 、 ( 13 ) (12)、(13) (12)、(13)分别修正为: P ( c ) = ∣ D c + 1 ∣ ∣ D ∣ + N , (14) P(c)=\frac{|D_c+1|}{|D|+N},\tag{14} P(c)=∣D∣+N∣Dc​+1∣​,(14) P ( x i ∣ c ) = ∣ D c , x i + 1 ∣ ∣ D c ∣ + N i (15) \\P(x_i|c)=\frac{|D{c,x_i}+1|}{|Dc|+N_i}\tag{15} P(xi​∣c)=∣Dc∣+Ni​∣Dc,xi​+1∣​(15) 对连续属性可考虑概率密度函数,假定 P ( x i ∣ c ) P(x_i|c) P(xi​∣c) ~ N ( μ c , i , σ c , i 2 ) N(\mu_{c,i},\sigma_{c,i}^2) N(μc,i​,σc,i2​),其中 μ c , i \mu_{c,i} μc,i​和 σ c , i 2 \sigma_{c,i}^2 σc,i2​分别是第c类样本在第i个属性上取值的均值和方差,有: P ( x i ∣ c ) = 1 2 π σ c , i e x p ( − ( x i − μ c , i ) 2 2 σ c , i 2 ) (16) P(x_i|c)=\frac1{\sqrt{2\pi}\sigma_{c,i}}exp(-\frac{(x_i-\mu_{c,i})^2}{2\sigma_{c,i}^2})\tag{16} P(xi​∣c)=2π ​σc,i​1​exp(−2σc,i2​(xi​−μc,i​)2​)(16) 朴素贝叶斯优点: (1)对小规模的数据表现很好,能处理多分类任务,适合增量式训练,尤其是数据量超出内存时,可以一批批的去增量训练。 (2)对缺失数据不太敏感,算法也比较简单,常用于文本分类。 朴素贝叶斯缺点:    (1)由 ( 7 ) (7) (7)式可知,需要得到类条件概率,该算法得到类条件概率时提出了“属性条件独立性假设“,然而实际样本数据中属性一般情况下是不独立的。 (2)由于该算法是通过先验和数据来决定后验的概率从而决定分类,所以分类决策存在一定的错误率。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3