简介Na?veBayes算法,又称朴素贝叶斯算法,简单:与特征条件无关;贝叶斯:基于贝叶斯定理。属于监督学习的生成模型,实现简单,无迭代,有扎实的数学理论(即贝叶斯定理)支持。它在大量样本下会有更好的表现,不适合输入向量的特征条件相关的场景。基本思路(1)病人分类举例某医院上午收治了六名门诊病人,如下表所示:现在有第七名病人,一个打喷嚏的建筑工人。他感冒的概率是多少?根据贝叶斯定理:因此,打喷嚏的建筑工人有66%的概率感冒。以同样的方式,您可以计算出该患者患有过敏症或脑震荡的概率。通过比较这些概率,就可以知道他最有可能得的是什么病。这就是贝叶斯分类器的基本方法:在统计数据的基础上,根据一定的特征,计算出每一类的概率,从而实现分类。(2)朴素贝叶斯分类器的公式假设一个个体有n个特征(Feature),分别为F1,F2,……,Fn。目前有m个类别(Category),分别是C1,C2,...,Cm。贝叶斯分类器是计算概率最大的类别,即求下式的最大值:由于P(F1F2…Fn)对所有类别都是一样的,可以省略,问题就变成了追求的最大价值。朴素贝叶斯分类器更进一步,假设所有的特征都是相互独立的,所以上式右边的每一项都可以从统计数据中得到,从而可以计算出每个类别对应的概率。从而找出概率最大的类。虽然“所有特征相互独立”的假设在现实中不太可能成立,但它可以大大简化计算,一些研究表明它对分类结果的准确性影响不大。(3)拉普拉斯平滑(Laplacesmoothing)是参数为1时的贝叶斯估计,当某个成分在总样本(观察样本库/训练集)的某个类别中从未出现过时,会导致对整个实例进行评估到0。要解决此问题,请使用拉普拉斯平滑/plus-1平滑进行处理。它的思路很简单,就是先验概率的分子(划分的计数)加1,分母加类别数;条件概率的分子加1,分母加对应特征可能取值的个数。这样,在解决零概率问题的同时,也保证了概率和仍然为1。eg:假设在文本分类中,有3个类,C1,C2,C3。在指定的训练样本中,某词F1,在每一类中的观察次数分别为=0、990、10,即概率为P(F1/C1)=0,P(F1/C2)=0.99,P(F1/C3)=0.01,这三个量使用拉普拉斯平滑的计算方法如下:1/1003=0.001,991/1003=0.988,11/1003=0.011实际应用场景文本分类垃圾邮件过滤患者分类Spell检查朴素贝叶斯模型朴素贝叶斯模型的三个常用模型是:高斯模型:处理特征是连续变量的情况多项式模型:最常见的是,所需特征是离散数据伯努利模型:所需特征是离散的并且是布尔类型,即true和false,或者1和0代码实现了基于多项式模型的朴素贝叶斯算法(在github上获得)测试数据集为MNIST数据集,运行结果得到地址train.csv
