连载|朴素贝叶斯

朴素贝叶斯

贝叶斯公式

贝叶斯公式作为朴素贝叶斯的一个基础,先让我们看一下贝叶斯公式是如何得到的。

条件概率公式

设A、B是两个事件,且P(B)>0,则在事件B发生的条件下,事件A发生的概率为:

P ( A ∣ B ) = P ( A B ) P ( B ) P(A|B)=\frac{P(AB)}{P(B)} P(AB)=P(B)P(AB)

乘法公式

乘法公式是经过条件概率变换后得到的公式,结果如下:

P ( A B ) = P ( A ∣ B ) P ( B ) = P ( B ∣ A ) P ( A ) P(AB)=P(A|B)P(B)=P(B|A)P(A) P(AB)=P(AB)P(B)=P(BA)P(A)

全概率公式

如果事件B1,B2,…满足:

1.B1,B2…两两互斥,也就是Bi ∩ Bj = ∅ ,i≠j , i,j=1,2,…,且P(Bi)>0,i=1,2,…;

2.B1∪B2∪…=Ω ,则称事件组 B1,B2,…是样本空间Ω的一个划分,设 B1,B2,…是样本空间Ω的一个划分,A为任一事件,则有全概率公式如下:

P ( A ) = ∑ i = 1 n P ( B i ) P ( A ∣ B i ) P(A)=\sum _{i=1}^nP(B_i)P(A|B_i) P(A)=i=1nP(Bi)P(ABi)

贝叶斯公式

了解了上面的三种公式再让我们来看一下贝叶斯公式,我们换一种思路,现在我们已知事件B发生的概率,也知道了在事件B发生的条件下事件A发生的概率,根据这些条件我们如何去求事件A发生的条件下事件B发生的概率呢?也就是我们常说的根据先验概率去求后验概率是怎么一回事呢?

根据条件概率公式和乘法公式我们可以得到如下图所示的关系:

在这里插入图片描述

与全概率公式解决的问题相反,贝叶斯公式是建立在条件概率的基础上寻找事件发生的原因(即大事件A已经发生的条件下,分割中的小事件Bi的概率),设B1,B2,…是样本空间Ω的一个划分,则对任一事件A(P(A)>0),有

P ( B i ∣ A ) = P ( B i ) P ( A ∣ B i ) P ( A ) P(B_i|A)=\frac{P(B_i)P(A|B_i)}{P(A)} P(BiA)=P(A)P(Bi)P(ABi)

当我们不知道事件A发生的概率的情况下,我们考虑使用全概率公式来替换P(A),得到如下的贝叶斯公式:

P ( B i ∣ A ) = P ( B i ) P ( A ∣ B i ) ∑ i = 1 n P ( B i ) P ( A ∣ B i ) P(B_i|A)=\frac{P(B_i)P(A|B_i)}{\sum _{i=1}^nP(B_i)P(A|B_i)} P(BiA)=i=1nP(Bi)P(ABi)P(Bi)P(ABi)

Bi 常被视为导致试验结果A发生的”原因“,P(Bi)(i=1,2,…)表示各种原因发生的可能性大小,故称先验概率;P(Bi|A)(i=1,2…)则反映当试验产生了结果A之后,再对各种原因概率的新认识,故称后验概率。

朴素贝叶斯

我们得到了贝叶斯公式之后,再让我们来了解一下朴素贝叶斯算法是怎么一回事。

首先根据“朴素贝叶斯”这个名字中不难发现,相对于贝叶斯我们多了一个叫做“朴素”的词语,那么朴素究竟代表着什么呢?

我们不妨先把贝叶斯公式换成我们机器学习中常用的特征和类别的方式来表示一下:

P ( 类 别 | 特 征 ) = P ( 特 征 | 类 别 ) P ( 类 别 ) P ( 特 征 ) P(类别|特征)=\frac{P(特征|类别)P(类别)}{P(特征)} P()=P()P()P()

我们都知道对于式子中的先验概率P(特征|类别)而言,我们的实际场景中往往有很多的类别和特征,那么对应的我们的先验概率也就变成了一个所有特征上的联合概率,导致我们很难从有限的训练样本估计而得到,为了避开这个障碍朴素贝叶斯分类器采用了“属性条件独立性假设”:对已知类别,假设所有特征相互独立,也可以说,假设每个特征独立地对分类结果发生影响。这就是我们对于“朴素”一词的理解,也是朴素贝叶斯对应着的一个前提条件。

假设我们有特征1、特征2、特征3,对应着我们根据“朴素”的思想就可以把先验概率表示为如下的形式:

P ( 特 征 1 、 特 征 2 、 特 征 3 | 类 别 ) = P ( 特 征 1 | 类 别 ) P ( 特 征 2 | 类 别 ) P ( 特 征 3 | 类 别 ) P(特征1、特征2、特征3|类别)=P(特征1|类别)P(特征2|类别)P(特征3|类别) P(123)=P(1)P(2)P(3)

或许这样还是比较抽象,下面让我们通过一个简单的“挑西瓜”的例子来计算一下:

假设我们有如下的一组关于西瓜的数据:

在这里插入图片描述

  • 特征

    瓜蒂:脱落|未脱落

    形状:尖形|圆形

    颜色:深绿|浅绿|青色

  • 类别

    类别:瓜熟|瓜生

  • 现在有一西瓜(脱落|圆形|青色)我们如何去判断它的生熟呢?

P ( 瓜 熟 ∣ 脱 落 、 圆 形 、 青 色 ) = P ( 脱 落 、 圆 形 、 青 色 ∣ 瓜 熟 ) ∗ P ( 瓜 熟 ) P ( 脱 落 、 圆 形 、 青 色 ) P(瓜熟|脱落、圆形、青色)=\frac{P(脱落、圆形、青色|瓜熟) * P(瓜熟)}{P(脱落、圆形、青色)} P()=P()P()P()

P ( 瓜 生 ∣ 脱 落 、 圆 形 、 青 色 ) = P ( 脱 落 、 圆 形 、 青 色 ∣ 瓜 生 ) ∗ P ( 瓜 生 ) P ( 脱 落 、 圆 形 、 青 色 ) P(瓜生|脱落、圆形、青色)=\frac{P(脱落、圆形、青色|瓜生) * P(瓜生)}{P(脱落、圆形、青色)} P()=P()P()P()

  • 对于熟瓜,我们可以得到样本中瓜熟的概率

在这里插入图片描述

  • P ( 瓜 熟 ) = 6 10 = 3 5 P(瓜熟)=\frac{6}{10}=\frac{3}{5} P()=106=53
  • 对于瓜蒂,我们可以计算熟瓜瓜蒂为脱落的概率

在这里插入图片描述

  • P ( 脱 落 | 瓜 熟 ) = 4 6 = 2 3 P(脱落|瓜熟)=\frac{4}{6}=\frac{2}{3} P()=64=32

  • 对于形状,我们可以计算熟瓜形状为圆形的概率

在这里插入图片描述

  • P ( 圆 形 | 瓜 熟 ) = 4 6 = 2 3 P(圆形|瓜熟)=\frac{4}{6}=\frac{2}{3} P()=64=32
  • 对于颜色,我们可以计算熟瓜颜色为青色的概率

在这里插入图片描述

  • P ( 青 色 | 瓜 熟 ) = 2 6 = 1 3 P(青色|瓜熟)=\frac{2}{6}=\frac{1}{3} P()=62=31

  • 对于生瓜我们可以使用和熟瓜相同的计算方式
    在这里插入图片描述

  • P ( 瓜 生 ) = 4 10 = 2 5 P(瓜生)=\frac{4}{10}=\frac{2}{5} P()=104=52
    在这里插入图片描述

  • P ( 脱 落 | 瓜 生 ) = 1 4 = 1 4 P(脱落|瓜生)=\frac{1}{4}=\frac{1}{4} P()=41=41

在这里插入图片描述

  • P ( 圆 形 | 瓜 生 ) = 1 4 = 1 4 P(圆形|瓜生)=\frac{1}{4}=\frac{1}{4} P()=41=41

在这里插入图片描述

  • P ( 青 色 | 瓜 生 ) = 1 4 = 1 4 P(青色|瓜生)=\frac{1}{4}=\frac{1}{4} P()=41=41

  • P ( 脱 落 、 圆 形 、 青 色 ∣ 瓜 熟 ) × P ( 瓜 熟 ) P(脱落、圆形、青色|瓜熟) × P(瓜熟) P()×P()

  • P ( 瓜 熟 ) × P ( 脱 落 ∣ 瓜 熟 ) × P ( 圆 形 ∣ 瓜 熟 ) × P ( 青 色 ∣ 瓜 熟 ) = ( 3 5 ) × ( 2 3 ) × ( 2 3 ) × ( 1 3 ) = 4 45 P(瓜熟) × P(脱落 | 瓜熟) × P(圆形 | 瓜熟) × P(青色 | 瓜熟) = (\frac{3}{5}) × (\frac{2}{3}) × (\frac{2}{3}) × (\frac{1}{3}) = \frac{4}{45} P()×P()×P()×P()=(53)×(32)×(32)×(31)=454

  • P ( 脱 落 、 圆 形 、 青 色 ∣ 瓜 生 ) × P ( 瓜 生 ) P(脱落、圆形、青色|瓜生) × P(瓜生) P()×P()

  • P ( 瓜 生 ) × P ( 脱 落 ∣ 瓜 生 ) × P ( 圆 形 ∣ 瓜 生 ) × P ( 青 色 ∣ 瓜 生 ) = ( 2 5 ) × ( 1 4 ) × ( 1 4 ) × ( 1 4 ) = 1 160 P(瓜生) × P(脱落 | 瓜生) × P(圆形 | 瓜生) × P(青色 | 瓜生) = (\frac{2}{5}) × (\frac{1}{4}) × (\frac{1}{4}) × (\frac{1}{4}) = \frac{1}{160} P()×P()×P()×P()=(52)×(41)×(41)×(41)=1601

  • 我们需要比较的是P(瓜熟|脱落、圆形、青色)和P(瓜生|脱落、圆形、青色)二者的概率,从最初的表达式我们可以知道,二者的分子相同,故我们只去比较分子即可,也就是比较上述的计算结果 4 45 > 1 160 \frac{4}{45}>\frac{1}{160} 454>1601所以我们就可以判定特征为脱落、圆形、青色的瓜为熟瓜。

拉普拉斯平滑

以上就是我们根据朴素贝叶斯的思想进行挑西瓜的例子,是不是很简单,但是这只是我们理想情况的计算方式,如果我们在进行联合概率的连乘的时候,有某一项的值为0了,那么此时也将会导致我们整个式子的结果为0,为了解决这种情况的发生我们有一种特殊的策略“拉普拉斯平滑”。

  • 对于某个数据集,我们考虑到对于某个特征X在训练集中没有出现,那么将会导致整个分类概率变为0,这将会导致分类变得非常不合理,所以为了解决零概率的问题,法国数学家拉普拉斯最早提出用加1的方法估计没有出现过的现象的概率,所以加法平滑也叫做拉普拉斯平滑。假定训练样本很大时,每个分量x的计数加1造成的估计概率变化可以忽略不计,但可以方便有效的避免零概率问题。

  • 应用举例:

    假设在文本分类中,有3个类,C1、C2、C3,在指定的1000个训练样本中,某个词语K1,在各个类中观测计数分别为0,990,10,K1的概率为0,0.99,0.01。

    对这三个量使用拉普拉斯平滑的计算方法如下:

    0 + 1 1000 + 1 + 1 + 1 = 1 1003 = 0.001 \frac{0+1}{1000+1+1+1}=\frac{1}{1003}=0.001 1000+1+1+10+1=10031=0.001

    990 + 1 1000 + 1 + 1 + 1 = 991 1003 = 0.988 \frac{990+1}{1000+1+1+1}=\frac{991}{1003}=0.988 1000+1+1+1990+1=1003991=0.988

    10 + 1 1000 + 1 + 1 + 1 = 11 1003 = 0.011 \frac{10+1}{1000+1+1+1}=\frac{11}{1003}=0.011 1000+1+1+110+1=100311=0.011

常见的三种朴素贝叶斯

多项式朴素贝叶斯

当特征是离散的时候,使用多项式模型。多项式模型在计算先验概率 P ( y k ) P(y_k) P(yk)和条件概率 P ( x i ∣ y k ) P(x_i|y_k) P(xiyk)时,会做一些平滑处理,具体公式为:

p ( y k ) = N y k + α N + k α p(y_k)=\frac{N_{yk}+\alpha}{N+k\alpha} p(yk)=N+kαNyk+α

N是总的样本个数,k是总的类别个数, N y k N_{yk} Nyk是类别为 y k y_k yk的样本个数,α是平滑值。

p ( x i ∣ y k ) = N y k x i + α N y k + n α p(x_i|y_k)=\frac{N_{ykx_i}+\alpha}{N_{yk}+n\alpha} p(xiyk)=Nyk+nαNykxi+α

N y k N_{yk} Nyk是类别为 y k y_k yk的样本个数,n是特征的维数, N y k x i N_{ykx_i} Nykxi是类别为 y k y_k yk的样本中,第i维特征的值是 x i x_i xi的样本个数,α是平滑值。

当α=1时,称作Laplace平滑,当0<α<1时,称作Lidstone平滑,α=0时不做平滑。

如果不做平滑,当某一维特征的值 x i x_i xi没在训练样本中出现过时,会导致 P ( x i ∣ y k ) = 0 P(x_i|y_k)=0 P(xiyk)=0,从而导致后验概率为0。加上平滑就可以克服这个问题。

高斯朴素贝叶斯

当特征是连续变量的时候,运用多项式模型就会导致很多 P ( x i ∣ y k ) = 0 P(x_i|y_k)=0 P(xiyk)=0(不做平滑的情况下),此时即使做平滑,所得到的条件概率也难以描述真实情况。所以处理连续的特征变量,应该采用高斯模型。

P ( x i ∣ y k ) = 1 2 π σ y k i 2 exp ⁡ − ( x i − μ y k i ) 2 2 σ y k i 2 P(x_i|y_k)=\frac{1}{\sqrt{2\pi\sigma_{yki}^2}}\exp^{-\frac{(x_i-\mu_{yki})^2}{2\sigma_{yki}^2}} P(xiyk)=2πσyki2 1exp2σyki2(xiμyki)2

μ y k i \mu_{yki} μyki 表示类别为yk的样本中,第i维特征的均值。

σ y k i 2 \sigma_{yki}^2 σyki2表示类别为yk的样本中,第i维特征的方差。

伯努利朴素贝叶斯

与多项式模型一样,伯努利模型适用于离散特征的情况,所不同的是,伯努利模型中每个特征的取值只能是1和0(以文本分类为例,某个单词在文档中出现过,则其特征值为1,否则为0)。

当特征值 x i x_i xi为1时, P ( x i ∣ y k ) = P ( x i = 1 ∣ y k ) P(x_i|y_k)=P(x_i=1|y_k) P(xiyk)=P(xi=1yk)

当特征值 x i x_i xi为0时, P ( x i ∣ y k ) = 1 − P ( x i = 1 ∣ y k ) P(x_i|y_k)=1−P(x_i=1|y_k) P(xiyk)=1P(xi=1yk)

在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
朴素贝叶斯算法是一种基于贝叶斯定理的分类算法,它假设特征之间相互独立。这个假设使得算法具有较快的训练和预测速度,并且在处理大规模数据集时表现良好。 下面我将用图解的方式详细介绍朴素贝叶斯算法的原理和步骤。 首先,我们需要准备一个分类任务的数据集。假设我们要构建一个垃圾邮件分类器,数据集包含了一些已经标记好的邮件样本,每个邮件样本都有一些特征(如邮件内容、发件人等)和对应的标签(垃圾邮件/非垃圾邮件)。 第一步是计算先验概率。先验概率指的是在没有任何特征信息的情况下,某个样本属于某个类别的概率。在我们的例子中,就是计算垃圾邮件和非垃圾邮件出现的概率。 第二步是计算条件概率。条件概率指的是在已知某个特征条件下,某个样本属于某个类别的概率。对于朴素贝叶斯算法来说,我们假设所有特征之间相互独立,因此可以将条件概率拆分为各个特征的概率乘积。我们需要计算每个特征在每个类别下的概率。 第三步是应用贝叶斯定理。贝叶斯定理可以根据已知的特征计算某个样本属于某个类别的后验概率。后验概率越大,就说明该样本属于该类别的可能性越大。 最后,我们可以根据后验概率进行分类预测。选择具有最大后验概率的类别作为预测结果。 总结一下,朴素贝叶斯算法通过计算先验概率、条件概率和应用贝叶斯定理,实现了对样本的分类预测。它的优势在于简单、快速,并且在一些特定的数据集上表现出色。然而,它的假设可能不符合实际情况,所以在实际应用中需要考虑和验证数据的特性和假设的合理性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

二哥不像程序员

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值