1. 介绍

朴素贝叶斯分类的思想是求出数据实例属于每个类型的概率,通过比较求出最大概率的类别。那么怎么求出数据实例属于某个类别的概率呢?这里就用到了贝叶斯公式及其变形:
P(BA)=P(AB)P(A)P(B|A)=\cfrac{P(AB)}{P(A)}
P(AB)=P(AB)P(B)P(A|B)=\cfrac{P(AB)}{P(B)}
P(AB)=P(BA)P(A)=P(AB)P(B)P(AB)=P(B|A)*P(A)=P(A|B)*P(B)

我们用到的是下面这个公式变形:

P(BA)=P(AB)P(B)P(A)P(B|A)=\cfrac{P(A|B)*P(B)}{P(A)}

我的另一篇文章《排列组合、积事件概率、条件概率、贝叶斯公式、独立事件》有作简单介绍,也可以看概率论中关于条件概率的视频:
《概率论与数理统计》教学视频全集(宋浩)
条件概率 https://www.bilibili.com/video/av36206436?p=11
乘法公式 https://www.bilibili.com/video/av36206436?p=12
全概率公式 https://www.bilibili.com/video/av36206436?p=13
贝叶斯公式 https://www.bilibili.com/video/av36206436?p=14

将上述表达为分类任务的公式:
P()=P()P()P()P(类别|特征)=\cfrac{P(特征|类别)*P(类别)}{P(特征)}

从已知的样本数据中,可以计算出P(特征|类别)P(类别)P(特征),从而在给定待分类数据实例特征时,可以计算出所属某类别的概率,即P(类别|特征)

2. 案例

我们从一个实例来说明(摘自《带你彻彻底底搞懂朴素贝叶斯公式》|《带你搞懂朴素贝叶斯分类算法》
机器学习 朴素贝叶斯分类
现在给我们的问题是,如果一对男女朋友,男生向女生求婚,男生的四个特点分别是不帅性格不好身高矮不上进(好扎心,囧o(╯□╰)o),请你判断一下女生是还是不嫁

这是一个典型的分类问题,转为数学问题就是比较P(嫁|(不帅、性格不好、身高矮、不上进))P(不嫁|(不帅、性格不好、身高矮、不上进))的概率,最终选择嫁与不嫁的答案。
这里我们联系到朴素贝叶斯公式:
P(())=P(())P()P()P(嫁|(不帅、性格不好、身高矮、不上进))=\cfrac{P((不帅、性格不好、身高矮、不上进)|嫁)*P(嫁)}{P(不帅、性格不好、身高矮、不上进)}

那么等式后面的三个值是如何求得?
是根据已知训练数据统计得来,下面详细给出该例子的求解过程。

P(不帅、性格不好、身高矮、不上进|嫁) = P(不帅|嫁)*P(性格不好|嫁)*P(身高矮|嫁)*P(不上进|嫁),那么我就要分别统计后面几个概率,也就得到了左边的概率!

等等,为什么这个成立呢?学过概率论的同学可能有感觉了,这个等式成立的条件需要特征之间相互独立吧!

对的!这也就是为什么朴素贝叶斯分类有朴素一词的来源,朴素贝叶斯算法是假设各个特征之间相互独立,那么这个等式就成立了!

将上面的公式整理一下可得:
P(())=P()P()P()P()P()P()=P()P()P()P()P()P()P()P()P()P()+P()P()P()P()P()P(嫁|(不帅、性格不好、身高矮、不上进))=\frac{P(不帅|嫁)*P(性格不好|嫁)*P(身高矮|嫁)*P(不上进|嫁)*P(嫁)}{P(不帅、性格不好、身高矮、不上进)}\\ =\frac{P(不帅|嫁)*P(性格不好|嫁)*P(身高矮|嫁)*P(不上进|嫁)*P(嫁)}{P(不帅|嫁)*P(性格不好|嫁)*P(身高矮|嫁)*P(不上进|嫁)*P(嫁)+P(不帅|不嫁)*P(性格不好|不嫁)*P(身高矮|不嫁)*P(不上进|不嫁)*P(不嫁)}
P(())=P()P()P()P()P()P()=P()P()P()P()P()P()P()P()P()P()+P()P()P()P()P()P(不嫁|(不帅、性格不好、身高矮、不上进))=\frac{P(不帅|不嫁)*P(性格不好|不嫁)*P(身高矮|不嫁)*P(不上进|不嫁)*P(不嫁)}{P(不帅、性格不好、身高矮、不上进)}\\ =\frac{P(不帅|不嫁)*P(性格不好|不嫁)*P(身高矮|不嫁)*P(不上进|不嫁)*P(不嫁)}{P(不帅|嫁)*P(性格不好|嫁)*P(身高矮|嫁)*P(不上进|嫁)*P(嫁)+P(不帅|不嫁)*P(性格不好|不嫁)*P(身高矮|不嫁)*P(不上进|不嫁)*P(不嫁)}
条件独立性假设是假定“输入参数的各个特征”对“输出参数的值”的影响相互独立,而不是假设特征本身相互独立。 所以“P(不帅、性格不好、矮、不上进)”并不等于“P(不帅)P(性格不好)P(矮)P(不上进)”。

分母相同的,实际上只求解分子即可。

下面我们逐一进行统计计算(在数据量很大的时候,根据中心极限定理,频率是等于概率的):

P(嫁)=1/2、P(不帅|嫁)=1/2、P(性格不好|嫁)=1/6、P(矮|嫁)=1/6、P(不上进|嫁)=1/6。

P(不嫁)=1/2、P(不帅|不嫁)=1/3、P(性格不好|不嫁)=1/2、P(矮|不嫁)=1、P(不上进|不嫁)=2/3

P(())=12121616161212161616+121312123=18641864+118=149P(嫁|(不帅、性格不好、身高矮、不上进))=\cfrac{\frac12*\frac12*\frac16*\frac16*\frac16}{\frac12*\frac12*\frac16*\frac16*\frac16+\frac12*\frac13*\frac12*1*\frac23}=\frac{\frac1{864}}{\frac1{864}+\frac1{18}}=\frac1{49}
P(())=1213121231212161616+121312123=1181864+118=4849P(不嫁|(不帅、性格不好、身高矮、不上进))=\cfrac{\frac12*\frac13*\frac12*1*\frac23}{\frac12*\frac12*\frac16*\frac16*\frac16+\frac12*\frac13*\frac12*1*\frac23}=\frac{\frac1{18}}{\frac1{864}+\frac1{18}}=\frac{48}{49}

P(不嫁|不帅、性格不好、矮、不上进) > P(嫁|不帅、性格不好、矮、不上进),则该女子选择不嫁的概率更大!

3. 朴素贝叶斯的优缺点

优点:
(1)算法逻辑简单,易于实现(算法思路很简单,只要使用贝叶斯公式转化即可!)
(2)分类过程中时空开销小(假设特征相互独立,只会涉及到二维存储)

缺点:
朴素贝叶斯假设属性之间相互独立,这种假设在实际过程中往往是不成立的。在属性之间相关性越大,分类误差也就越大。

相关文章:

  • 2021-05-13
  • 2021-07-07
  • 2021-06-19
  • 2021-04-11
  • 2022-12-23
猜你喜欢
  • 2021-09-19
  • 2021-07-31
  • 2018-08-23
  • 2021-08-01
  • 2022-01-12
相关资源
相似解决方案