机器学习之朴素贝叶斯

2020-09-03  本文已影响0人  一只怂货小脑斧

引言

一、概念

可以参考:浅谈全概率公式和贝叶斯公式

贝叶斯原理、贝叶斯分类和朴素贝叶斯这三者之间是有区别的
贝叶斯原理是最大的概念,它解决了概率论中“逆向概率”的问题,在这个理论基础上,人们设计出了贝叶斯分类器,朴素贝叶斯分类是贝叶斯分类器中的一种,也是最简单,最常用的分类器。朴素贝叶斯之所以朴素是因为它假设属性是相互独立的,因此对实际情况有所约束,如果属性之间存在关联,分类准确率会降低。不过好在对于大部分情况下,朴素贝叶斯的分类效果都不错。

贝叶斯.jpg

二、 sklearn 机器学习包中的贝叶斯分类

sklearn 的全称叫 Scikit-learn,它给我们提供了 3 个朴素贝叶斯分类算法,分别是高斯朴素贝叶斯(GaussianNB)、多项式朴素贝叶斯(MultinomialNB)和伯努利朴素贝叶斯(BernoulliNB)。

参考:机器学习经典算法之朴素贝叶斯分类

1.多项式朴素贝叶斯分类

基于原始的贝叶斯理论,但假设概率分布是服从一个简单多项式分布。多项式分布来源于统计学中的多项式实验,这种实验可以具体解释为:实验包括n次重复试验,每项试验都有不同的可能结果。在任何给定的试验中,特定结果发生的概率是不变的。

#导⼊入需要的模块和库
from sklearn.naive_bayes import MultinomialNB
#参数
class sklearn.naive_bayes.MultinomialNB(alpha=1.0,fit_prior=True,class_prior=None)

参数说明:

alpha:浮点型可选参数,默认为1.0,其实就是添加拉普拉斯平滑,即为上述公式中的λ ,如果这个参数设置为>0,就是不添加平滑;
fit_prior:布尔型可选参数,默认为True。布尔参数fit_prior表示是否要考虑先验概率,如果是false,则所有的样本类别输出都有相同的类别先验概率。否则可以自己用第三个参数class_prior输入先验概率,或者不输入第三个参数class_prior,让MultinomialNB自己从训练集样本来计算先验概率,此时的先验概率为 P(Y=Ck)=mk/mP(Y=C_k)=m_k/mP(Y=Ck​)=mk​/m。其中m为训练集样本总数量,mkm_kmk​为输出为第k类别的>训练集样本数。
class_prior:可选参数,默认为None。

多项式贝叶斯参数.png
多项式实验中的实验结果都很具体,它所涉及的特征往往是次数,频率,计数,出现与否这样的概念,这些概念都是离散的正整数,因此,sklearn中的多项式朴素贝叶斯不接受负值的输入

参考:sklearn机器学习:多项式朴素贝叶斯MultinomialNB

2.其他

其他的暂时没用到,以后不断补充。。。

上一篇 下一篇

猜你喜欢

热点阅读