朴素贝叶斯分类方法

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

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

原理

朴素 即假设各样本之间相互独立

贝叶斯 就是概率中的贝叶斯公式

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

举例

2345_image_file_copy_68.jpg

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

二、概率基础

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 贝叶斯公式

2345_image_file_copy_69.jpg

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

2345_image_file_copy_70.jpg

公式分为三个部分:

P(c):每个文档类别的概率(某文档类别数/总文档数量)

P(W│C):给定类别下特征(被预测文档中出现的词)的概率计算方法:

P(F1│C)=Ni/N (训练文档中去计算)

Ni为该F1词在C类别所有文档中出现的次数

N为所属类别C下的文档所有词出现的次数和

P(F1,F2,…) 预测文档中每个词的概率如果计算两个类别概率比较:

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

2345_image_file_copy_71.jpg

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

三、文章分类计算

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

2345_image_file_copy_72.jpg

计算结果为:

2345_image_file_copy_73.jpg

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

四、拉普拉斯平滑系数

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

2345_image_file_copy_74.jpg

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类新闻分类

2345_image_file_copy_75.jpg

分析:

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

2345_image_file_copy_76.jpg

2345_image_file_copy_77.jpg

六、总结

优点:

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

分类准确度高,速度快

缺点:

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

目录
相关文章
|
7月前
|
算法 Python
k-近邻算法介绍及实例
欢迎关注我的微信公众号:Python学习杂记
k-近邻算法介绍及实例
|
25天前
|
机器学习/深度学习 数据可视化
R语言逻辑回归分析连续变量和分类变量之间的“相关性“
R语言逻辑回归分析连续变量和分类变量之间的“相关性“
|
机器学习/深度学习 自然语言处理 算法
8种时间序列分类方法总结
对时间序列进行分类是应用机器和深度学习模型的常见任务之一。本篇文章将涵盖 8 种类型的时间序列分类方法。这包括从简单的基于距离或间隔的方法到使用深度神经网络的方法。这篇文章旨在作为所有时间序列分类算法的参考文章。
725 0
8种时间序列分类方法总结
|
人工智能 开发者
回归方程定义 | 学习笔记
快速学习回归方程定义
151 0
|
人工智能 开发者
回归方程求解小例子 | 学习笔记
快速学习回归方程求解小例子
102 0
回归方程求解小例子 | 学习笔记
EL之Bagging(DTR):利用Bagging对回归问题(实数值评分预测)建模(调2参)
EL之Bagging(DTR):利用Bagging对回归问题(实数值评分预测)建模(调2参)
EL之Bagging(DTR):利用Bagging对回归问题(实数值评分预测)建模(调2参)
|
机器学习/深度学习 数据挖掘 Windows
无监督学习 聚类分析③
确定最佳聚类数目 Nbclust包 Nbclust包是《R语言实战》上一个包,定义了几十个评估指标,聚类数目从2遍历到15(自己设定),然后通过这些指标看分别在聚类数为多少时达到最优,最后选择指标支持数最多的聚类数目就是最佳聚类数目。
1187 0
|
机器学习/深度学习 算法 数据挖掘
无监督学习 聚类分析④
无监督学习 聚类分析④ EM(Expectation Maximization Algorithm) 1.EM算法的基本思想 假如我们随机选取了100名男生和100名女生,两百个人混在一起,而目前只有每个人学生的身高数据,我们既不知道每个身高数据所对应的性别,也不知道男生和女生两个群体的总体身高分布情况。
854 0
|
机器学习/深度学习 算法
无监督学习 聚类分析②
划分聚类分析 K 均值聚类 最常见的划分方法是K均值聚类分析。从概念上讲,K均值算法如下: 选择K个中心点(随机选择K行); 把每个数据点分配到离它最近的中心点; 重新计算每类中的点到该类中心点距离的平均值(也就说,得到长度为p的均值向量,这 里的p是变量的个数); 分配每个数据到它最近的中心点; 重复步骤(3)和步骤(4)直到所有的观测值不再被分配或是达到最大的迭代次数(R把10次 作为默认迭代次数)。
844 0