(一)引言

朴素贝叶斯是一种基于贝叶斯定理和特征条件独立性假设的常见的机器学习分类算法。假设给定一个训练数据集,首先根据特征条件独立性假设来学习输入/输出 的联合概率分布(学习得到一个模型)。然后根据该模型,对于给定的新的样本数据(即不在训练数据集中),利用贝叶斯定理求出后验概率最大的输出y(类别标签)。

目标:给定样本数据朴素贝叶斯 - 图1, 我们要求的是朴素贝叶斯 - 图2。其中朴素贝叶斯 - 图3代表类别,共有k个类(Mnist数据集k为10)。为了求朴素贝叶斯 - 图4,我们要用到贝叶斯定理来求后验概率。下面先介绍一下贝叶斯定理(先验概率、后验概率)。

(二)理解贝叶斯公式

此部分参考博客(https://www.cnblogs.com/yemanxiaozu/p/7680761.html)。
(1)先验概率:根据客观事实和统计频率得出的概率。
(2)后验概率:某件事情已经发生了,在这个事实下,判断导致这件事情发生的不同原因的概率。后验概率要用先验概率来求解(贝叶斯公式)。
(3)不正经例子(这个例子造着玩的,觉得有问题请看下个例子或直接转参考的博客):
有一个班级只有小倪、小杨和班花小柳三人。重磅消息:小柳和班里的某个人交往了。已知小倪(高富帅)各方面都优于小杨且小柳只能被追,问小柳的交往对象是小倪的概率是多少?(假设你回答是80%,那么你已经进行了一次后验概率的猜测。)下面用贝叶斯公式来求解一下:
假设小倪和小杨对小柳进行追求的概率分别为80%和20%,且小倪追小柳成功的概率是60%,小杨追小柳成功的概率是40%。即
P(小倪追小柳)=80%
P(小杨追小柳)=20%
P(成功|小倪追小柳)=60%
P(成功|小杨追小柳)=40%

求解:
朴素贝叶斯 - 图5

(4)正经的例子:
设想一个判断:已知烟龄10年以上的人群中患肺癌的概率是1e-4,其他人群中患肺癌的概率是1e-5。有知道10年以上烟龄的人在总人口中的比例大约为10%。
问:如果有一个人,他得了癌症,那么他抽烟10年以上的概率是多少?
解:
朴素贝叶斯 - 图6 为烟龄10年以上, 朴素贝叶斯 - 图7 为不吸烟或者烟龄不到10年。
朴素贝叶斯 - 图8 为患肺癌, 朴素贝叶斯 - 图9 为不患肺癌
则:**
朴素贝叶斯 - 图10
=朴素贝叶斯 - 图11
也就是说在这个题设下,随机选取一个患有肺癌的人,那么他烟龄10年以上的概率为52.6%,即使在全体人群中,烟龄10年以上的人数只占10%。

(三)朴素贝叶斯算法

理解了贝叶斯定理之后。再来看一看朴素贝叶斯算法:
(1)基本方法:
给定训练数据集T={X,Y}={朴素贝叶斯 - 图12},其中朴素贝叶斯 - 图13,X是样本特征向量集合,Y是样本标签集合。朴素贝叶斯方法需要通过训练数据集来学习联合概率分布P(X,Y)。其中P(X,Y)=P(X|Y)P(Y)。P(Y)即先验概率可以根据样本标签集合求得。
各标签值的概率:朴素贝叶斯 - 图14(共K各类别)。
由训练数据集可得条件概率分布
朴素贝叶斯 - 图15
朴素贝叶斯法对条件概率分布作了条件独立性假设,根据这个假设,可以得到:
朴素贝叶斯 - 图16
其中j代表第j个特征。共有n个特征。
还记得引言中的目标嘛,现在用贝叶斯公式来求解朴素贝叶斯 - 图17

朴素贝叶斯 - 图18

OK,至此我们得到了朴素贝叶斯的基本公式。目标是求朴素贝叶斯 - 图19,且上式的分母对所有的类别值相同,所以我们只需要求:

朴素贝叶斯 - 图20
其对应的标签值朴素贝叶斯 - 图21就是求得的标签值y。
(2)总结一下朴素贝叶斯方法的流程:
输入:训练数据T={X,Y}={朴素贝叶斯 - 图22},其中朴素贝叶斯 - 图23朴素贝叶斯 - 图24是第i个样本的第j个特征。朴素贝叶斯 - 图25朴素贝叶斯 - 图26是第j个特征可能取得第l个值。朴素贝叶斯 - 图27
输出:实例x的分类标签值。
① 计算先验概率以及条件概率:
image.png

②对于给定的实例朴素贝叶斯 - 图29,计算
朴素贝叶斯 - 图30
③确定实例x的类别:
朴素贝叶斯 - 图31

(四)其他

后面会补充具体实例。并且用极大似然估计会出现索要估计的概率值为0的情况,会影响分类效果。可以用贝叶斯估计来解决。
参考文献:
【1】李航.统计学习方法
【2】博客(https://www.cnblogs.com/yemanxiaozu/p/7680761.html)。