美文网首页
朴素贝叶斯

朴素贝叶斯

作者: 字字经心 | 来源:发表于2022-07-23 16:16 被阅读0次

朴素贝叶斯

朴素贝叶斯是分类算法,一个新数据x出现,是类a的概率为p(a/x),属于类b概率p(b/x)

  • p(a/x) > p(b/x),则x归为类a
  • p(a/x) < P(b/x),则为类b

要直接比较 p(a/x)p(b/x) 的大小是很难的,我们可借助条件概率进行转化。先理解什么是条件概率,
p(a/x) = {p(a,x) \over p(x)}

这样就可以得乘法公式,
p(a,x) = p(a/x)p(x)

再把p(a/x)进行转换可得,
p(a/x) = {p(a,x) \over p(x)} = {p(x,a) \over p(x)} = {p(x/a)p(a) \over p(x)}

因此比较就变成了
p(a/x) = {p(x/a)p(a) \over p(x)}
p(b/x) = {p(x/b)p(b) \over p(x)}

要比较他们的大小,就是计算出

  • p(a),类别a出现的概率
  • p(b),类别b出现的概率
  • p(x/a),类别a出现时样本x出现的概率
  • p(x/b),类别b出现时样本x出现的概率

应用

接下来用朴素贝叶斯在文本分类,屏蔽社区留言板的侮辱性言论的应用作为例子,解释上面四个概率的求法。假设数据集如下

# 言论集
postingList = [
['my', 'dog', 'has', 'flea', 'problems', 'help', 'please'], 
['maybe', 'not', 'take', 'him', 'to', 'dog', 'park', 'stupid'],
['my', 'dalmation', 'is', 'so', 'cute', 'I', 'love', 'him'],
['stop', 'posting', 'stupid', 'worthless', 'garbage'],
['mr', 'licks', 'ate', 'my', 'steak', 'how', 'to', 'stop', 'him'],
['quit', 'buying', 'worthless', 'dog', 'food', 'stupid']
]

# 1代表侮辱性言论,0 非侮辱性
classVec = [0, 1, 0, 1, 0, 1]

要判断一个样本数据是否侮辱性言论,先统计全部言论去重之后的词汇,再得出每条言论基于全部词汇的词频矩阵

词汇集= ['word1','word2',‘word3’..,'wordn']

# 第一列的2代表word1在言论1中出现2次
言论1:  [2, 0, 1, ....,4]
言论2:  [3, 2, 0, ....,2]   
......
言论n:  [0, 2, 2, ....,0]   

总侮辱言论:[45, 122, 232, 0,.....,90]
总非侮辱言论:[123, 23, 23, 2,.....,23]

假设a类别为侮辱性言论,b类别为非侮辱性言论,言论总数为N,a总数量n1,b总数量n2。此时可以求得,

  • p(a) = {n1 \over N}
  • p(b) = {n2 \over N}

至于p(x/a),要求a类别出现时x样本出现的概率,x是由很多词汇构成的。朴素贝叶斯算法的朴素二字正是假设各个特征之间是相互独立的,即每个词汇的出现是不会相互影响的;并且认为每个特征同等重要。因此求得侮辱性言论出现时每个词汇出现的概率为

# n0=sum([45, 122, 232, 0,.....,90]),即侮辱性言论集中总词数
[45, 122, 232, 0,.....,90]/n0

假设x样本包含词汇为 xword1,xword2,....xwordi...xwordn,侮辱性言论出现时对应词汇出现的概率为p(xword1),p(xword2),p(xwordi).......p(xwordn)
p(x/a) = p(xword1)p(xword2)...p(xwordi)...p(xwordn)

同理可得p(x/b),至以上四个概率都是已知量。这样就可以用朴素贝叶斯模型进行分类。要注意的是,防止有词汇概率为 0, 词汇计数初始值1,总词汇初始值2,即

[45, 122, 232, 0,.....,90]+1 / (n0+2)

防止p(xword1)p(xword2)...p(xwordi)...p(xwordn)=0,采用自然对数

参考文献

基于概率论的分类方法:朴素贝叶斯

欢迎大家给我留言,提建议,指出错误,一起讨论学习技术的感受!

相关文章

  • 算法笔记(7)-朴素贝叶斯算法及Python代码实现

    朴素贝叶斯算法有三种类型,分别是贝努利朴素贝叶斯、高斯贝叶斯、多项式朴素贝叶斯。 贝叶斯公式 贝努利朴素贝叶斯 适...

  • 朴素贝叶斯法

    朴素贝叶斯法 朴素贝叶斯法的学习与分类 朴素贝叶斯法的参数估计 朴素贝叶斯实现 高斯朴素贝叶斯实现 使用 skle...

  • 朴素贝叶斯(NBM)之后验概率最大化的含义 | 统计学习方法

    朴素贝叶斯 - 贝叶斯估计Python复现: 舟晓南:朴素贝叶斯(Bayes)模型python复现 - 贝叶斯估计...

  • 朴素贝叶斯算法介绍及优化

    朴素贝叶斯(Naive Bayes) 贝叶斯公式 朴素贝叶斯算法其实原理很简单,要理解朴素贝叶斯算法我们首先得知道...

  • 朴素贝叶斯法(NaiveBayes)

    朴素贝叶斯法(Naive Bayes) 朴素贝叶斯法是基于贝叶斯定力和特征条件独立假设的分类方法。 朴素贝叶斯法实...

  • 朴素贝叶斯算法

    问题 1. 什么是朴素贝叶斯 2. 怎么理解贝叶斯公式和朴素贝叶斯公式 3. 朴素贝叶斯算法流程是怎样...

  • 深度学习知识点汇总-机器学习基础(6)

    2.6 逻辑回归与朴素贝叶斯有什么区别? 逻辑回归是判别模型, 朴素贝叶斯是生成模型。 朴素贝叶斯属于贝叶斯,逻辑...

  • 朴素贝叶斯

    朴素贝叶斯 用处:朴素贝叶斯主要解决的是而分类的问题。 为什么叫朴素贝叶斯: 因为贝叶斯分类只做最原始,最简单的假...

  • sklearn-朴素贝叶斯

    朴素贝叶斯分为三种:高斯朴素贝叶斯、多项式朴素贝叶斯、伯努利朴素贝叶斯。这三种的不同之处在于求条件概率的公式不同。...

  • 第五周 - 20180507

    朴素贝叶斯的思路及实现 一、朴素贝叶斯简介 朴素贝叶斯法(Naive Bayes)是基于贝叶斯定理与特征条件独立假...

网友评论

      本文标题:朴素贝叶斯

      本文链接:https://www.haomeiwen.com/subject/jqdsirtx.html