目录

  • 一、什么是朴素贝叶斯分类方法
  • 原理
  • 举例
  • 二、概率基础
  • 三、文章分类计算
  • 四、拉普拉斯平滑系数
  • 五、API
  • 六、总结


一、什么是朴素贝叶斯分类方法

原理

朴素 即假设各样本之间相互独立
贝叶斯 就是概率中的贝叶斯公式
朴素贝叶斯分类 是对相对独立的样本间,根据特征以及类别计算相应的后验概率,所有可能的分类中概率最高的即为预测的结果。

举例

python中朴素贝叶斯分类算法 朴素贝叶斯分类方法_python中朴素贝叶斯分类算法


上图为某垃圾广告分类,通过观察可以发现产品类所占比例最大,即将其预测为产品类垃圾广告

二、概率基础

2.1 概率(Probability)定义

概率定义为一件事情发生的可能性

如:扔出一个硬币,结果头像朝上的几率,某天是晴天的可能性,P(X) : 取值在[0, 1]

2.2 条件概率与联合概率

  • 联合概率

包含多个条件,且所有条件同时成立的概率
记作:P(A,B)
特性:P(A, B) = P(A)P(B)

  • 条件概率

就是事件A在另外一个事件B已经发生条件下的发生概率
记作:P(A|B)
特性:P(A1,A2|B) = P(A1|B)P(A2|B)
注意:此条件概率的成立,是由于A1,A2相互独立的结果

2.3 贝叶斯公式

python中朴素贝叶斯分类算法 朴素贝叶斯分类方法_贝叶斯_02


那么这个公式如果应用在文章分类的场景当中,我们可以这样看:

python中朴素贝叶斯分类算法 朴素贝叶斯分类方法_贝叶斯_03

公式分为三个部分:

  • P(c):每个文档类别的概率(某文档类别数/总文档数量)
  • P(W│C):给定类别下特征(被预测文档中出现的词)的概率计算方法:
    P(F1│C)=Ni/N (训练文档中去计算)
    Ni为该F1词在C类别所有文档中出现的次数
    N为所属类别C下的文档所有词出现的次数和
  • P(F1,F2,…) 预测文档中每个词的概率如果计算两个类别概率比较:

所以我们只要比较前面的大小就可以,得出谁的概率大

python中朴素贝叶斯分类算法 朴素贝叶斯分类方法_概率论_04


所以我们只要比较前面的大小就可以,得出谁的概率大

三、文章分类计算

假设我们从训练集中得到以下特征

python中朴素贝叶斯分类算法 朴素贝叶斯分类方法_贝叶斯_05


计算结果为:

python中朴素贝叶斯分类算法 朴素贝叶斯分类方法_机器学习_06

我们计算出来某个概率为0,合适吗?

四、拉普拉斯平滑系数

目的:防止计算出的分类概率为0

python中朴素贝叶斯分类算法 朴素贝叶斯分类方法_python中朴素贝叶斯分类算法_07

P(娱乐|影院,支付宝,云计算) =P(影院,支付宝,云计算|娱乐)P(娱乐) =P(影院|娱乐)*P(支付宝|娱乐)P(云计算|娱乐)P(娱乐)=(56+1/121+4)(15+1/121+4)(0+1/121+14)(60/90) = 0.00002

五、API

sklearn.naive_bayes.MultinomialNB(alpha = 1.0)
  • 朴素贝叶斯分类
  • alpha:拉普拉斯平滑系数

六、案例

20类新闻分类

python中朴素贝叶斯分类算法 朴素贝叶斯分类方法_概率论_08

分析:

  • 分割数据集
  • tfidf进行的特征抽取朴素贝叶斯预测

python中朴素贝叶斯分类算法 朴素贝叶斯分类方法_分类_09

python中朴素贝叶斯分类算法 朴素贝叶斯分类方法_机器学习_10

六、总结

优点:

朴素贝叶斯模型发源于古典数学理论,有稳定的分类效率。对缺失数据不太敏感,算法也比较简单,常用于文本分类。
分类准确度高,速度快

缺点:

由于使用了样本属性独立性的假设,所以如果特征属性有关联时其效果不好。