贝叶斯分类是一类分类算法的总称,这类算法均以贝叶斯定理为基础,故统称为贝叶斯分类。

而朴素贝叶斯分类是贝叶斯分类中最简单,也是常见的一种分类方法。

本文将通过6个步骤带领你学习朴素贝叶斯算法。

Step1

什么是朴素贝叶斯算法?

朴素贝叶斯算法是一种基于贝叶斯定理的分类技术,假设在预测变量之间具有独立性。

给定一个水果,如果水果是黄色的,圆形的,直径约30厘米,则可以认为它是橘子。

即使对于橘子描述的这些特征彼此依赖或依赖于其他特征的存在,但所有的这些特征都促成了这个水果是橘子的可能性,这就是它被称为“朴素”的原因。

朴素贝叶斯模型易于构建,特别适用于非常大的数据集。

贝叶斯定理提供了一种从P(c),P(x)和P(x | c)计算后验概率P(c | x)的方法。

请看下面的等式:

·P(c | x)是给定预测值(x,属性)的类(c,目标)的后验概率。

·P(c )是先验概率。

·P(x | c)是给定类别的预测概率的似然性。

·P(x)是预测的先验概率。

简单来说,贝叶斯定理是基于假设的先验概率、给定假设下观察到不同数据的概率,提供了一种计算后验概率的方法。

Step2

朴素贝叶斯算法如何工作

让我们用一个例子来理解它。下面有一个关于天气和空气质量的训练数据集,根据天气记录的空气质量的好坏。

现在,我们需要根据天气情况对空气质量的好坏进行分类。

第1步:将数据集转换为频率表。

第2步:通过找到阴天概率= 0.28和空气质量好概率为0.64的概率来创建似然表。

第3步:现在,使用朴素贝叶斯方程计算每个类的后验概率。具有最高后验概率的类是预测的结果。

问题:如果天气晴朗,空气质量会是好。这个陈述是正确的吗?

我们可以使用上面讨论的后验概率方法来解决它。

·P(好|晴天)= P(晴天|好)* P(好)/ P(晴天)

·P(晴天|好)= 3/9 = 0.33

·P(晴天)= 5/14 = 0.36

·P(好)= 9/14 = 0.64

·P(好| 晴天)= 0.33 *0.64 / 0.36 = 0.60

得出结论,天气晴朗空气质量好具有更高的概率。

NaiveBayes使用类似的方法根据各种属性预测不同类别的概率。该算法主要用于文本分类,并且具有多个类的问题。

Step3

朴素贝叶斯的优点和缺点

1)预测测试数据集很容易也很快,在多类预测中表现良好。

2)算法简单,常用于文本分类。

3)朴素贝叶斯模型有稳定的分类效率。

4)适合增量式训练,尤其是数据量超出内存时,可以一批批的去增量训练。

1)如果分类变量具有在训练数据集中未观察到的类别,则模型将指定0(零)概率并且将无法进行预测。

2)独立预测因子的假设无法实现,我们几乎不可能得到一组完全独立的预测变量。

3)需要知道先验概率,且先验概率很多时候取决于假设。

4)通过先验和数据来决定后验的概率从而决定分类,所以分类决策存在一定的错误率。

5)对输入数据的表达形式很敏感。

step4

朴素贝叶斯算法的应用

1、实时预测

朴素贝叶斯是一个非常快速的学习分类器,因此,它可以用于实时预测。

2、多类预测

可以预测多类目标变量的概率。

3、文本分类/垃圾邮件过滤/情感分析

朴素贝叶斯分类器对于多类问题和独立性规则具有更高的成功率,因此,它被广泛用于文本分类、垃圾邮件过滤和情感分析。

4、推荐系统

朴素贝叶斯分类器和协同过滤一起构建一个推荐系统,这有助于预测用户是否愿意提供资源。

Step5

在Python中使用Naive Bayes构建基本模型

同样,scikit learn(python库)将帮助在这里用Python构建Naive Bayes模型。在scikit学习库下有三种类型的朴素贝叶斯模型:

-高斯模型

它用于分类,假设特征属于某个类别的观测值符合高斯分布。在处理连续的特征变量时,采用高斯模型。

-多项式模型

用于离散计数。例如,假设我们有文本分类问题。在这里我们可以考虑更进一步的bernoulli试验,而不是“在文档中出现的单词”,我们“计算文档中出现单词的频率”,你可以将其视为“观察到结果数x_i的次数”超过n次试验“。

-伯努利模型

与多项式模型一样,伯努利模型适用于离散特征的情况,所不同的是,伯努利模型中每个特征的取值只能是1和0(以文本分类为例,某个单词在文档中出现过,则其特征值为1,否则为0).

根据你的数据集,您可以选择上面讨论的任何模型。以下是高斯模型的示例。

Python 代码

#从高斯朴素贝叶斯模型到入库
sklearn. naive _ bayes 中导入 GaussianNB
import numpy as np
#分配预测变量和目标变量
x= np.array([[-3,7],[1,5], [1,2], [-2,0],[2,3], [-4,0], [-1,1], [1,1], [-2,2], [2,7], [-4,1], [-2,7]])
Y = np.array([3, 3, 3, 3, 4, 3, 3, 4, 3, 4,4, 4])
#创建高斯分类器
model = GaussianNB()
# 使用训练集训练模型
model.fit(x, y)
#预测输出
predicted= model.predict([[1,2],[3,4]])
print predicted
Output: ([3,4])

以上就是学习朴素贝叶斯的五个简单步骤,现在就开始学习吧!

欢迎关注公众号:DC学习助手,探索数据科学之旅

文章目录一、 朴素贝叶斯 公式1. 从统计角度看分类问题2. 贝叶斯公式的基本思想贝叶斯的基本逻辑3. 用贝叶斯公式进行选择贝叶斯版的预测未来二、 朴素贝叶斯 分类的 算法 原理1. 朴素贝叶斯 分类算法 的基本思路朴素+贝叶斯2. 朴素贝叶斯 分类算法 的数学解析 朴素贝叶斯 的优化方法3. 朴素贝叶斯 分类算法 的具体 步骤 三、在Python中使用 朴素贝叶斯 分类算法 四、 朴素贝叶斯 分类算法 的使用场景 一、 朴素贝叶斯 公式 1. 从统计角度看分类问题 我们知道,选择题一般有A、B、C、D四个选项,假 系OLAP服务器:使用 系的或者扩展的DBMS来存储和管理数据仓库数据以及OLAP的中间件,包括每个DBMS的后端优化,还有聚集导航的逻辑实现,以及附加的工具和服务,有比较大的可伸缩性。数据挖掘就是从大量的、不完全的、有噪声的、模糊的、随机的实际应用数据中,提取出隐含在其中的、人们事先不知道的、但又是潜在有用的信息和知识的过程。所处理的数据是不完整的,含有噪声的,不一致的,被人为修改的;2.用属性的平均值填充;数据仓库是面向主题的、集成的、时变的、非易失的数据集合,用于支持管理层的决策过程。 基于贝叶斯公式来估计后验概率P(c|x)的主要困难在于:类条件概率P(x|c)是所有属性上的联合概率,难以从有限的训练样本直接估计而得。 为避开这个障碍, 朴素贝叶斯 分类器(Naive Bayes classfier)采用了“属性条件独立性假设”:对已知类别,假设所有属性相互独立。换句话说,每个属性独立地对分类结果产生影响。 基于属性条件独立性假设,可重写P(c|x) 其中,d为属性数目,为x在第i个属性上的取值。由于对所有类别来说P(x)相同,则贝叶斯判定准则为(即 朴素贝叶斯 分类器的表达式): 第3 朴素贝叶斯 分类算法 流程 编程要求: 根据提示,完成fit与predict函数,分别实现模型的训练与预测。(PS:在fit函数中需要将预测时需要的概率保存到self.label_prob和self.condition_prob这两个变量中) 其中fit函数参数解释如下: feature:训练集数据,类型为ndarray; label:训练集标签,类型为ndarray; return:无返回。 朴素贝叶斯 分类算法 是基于贝叶斯理论和特征条件独立假设的 分类算法 。对于给定的训练集,首先基于特征条件独立假设 学习 数据的概率分布。然后基于此模型,对于给定的特征数据x,利用贝叶斯定理计算出标签y。 朴素贝叶斯 分类算法 实现 简单 ,预测效率很高,是一种常用的 分类算法 。 本实训项目的主要内容是基于 Python 语言搭建 朴素贝叶斯 分类器,并使用sklearn 实现新闻文本进行主题分类的功能。 朴素贝叶斯 分类算法 流程 import numpy as np class NaiveBayesClassifier(ob 给定一个数据集(x,y),每个样本x包含n维特征,类标签集合y包含N个类别。 现给定一个新样本x,需要判断它属于哪一类。在这里,我们取概率最大的类别作为其类标签,即问题转化为:找到最大值对应的类标签。即 在炎热的夏天你可能需要买一个大西瓜来解暑,但虽然你的挑西瓜的经验很老道,但还是会有挑错的时候。尽管如此,你可能还是更愿意相信自己经验。假设现在在你面前有一个纹路清晰,拍打西瓜后声音浑厚,按照你的经验来看这个西瓜是好瓜的概率有80%,不是好瓜的概率有20%。那么在这个时候你下意识会认为这个西瓜是好瓜,因为它是好瓜的概率大于不是好瓜的概率。 朴素贝叶斯 分类算法 的预测 流程 朴素贝叶斯 分类算法 ... 朴素贝叶斯 分类的原理与 流程 朴素贝叶斯 分类是一种十分 简单 分类算法 ,叫它 朴素贝叶斯 分类是因为这种方法的思想真的很朴素, 朴素贝叶斯 的思想基础是这样的:对于给出的待分类项,求解在此项出现的条件下各个类别出现的概率,哪个最大,就认为此待分类项属于哪个类别。通俗来说,就好比这么个道理,你在街上看到一个黑人,我问你你猜这哥们哪里来的,你十有八九猜非洲。为什么呢?因为黑人中非洲人的比率最高, 机器 学习 在实现人工智能时中需要人工辅助(半自动),而深度 学习 使该过程完全自动化三者 系:举个例子:通过机器 学习 算法 来识别水果是橘子还是苹果,需要人工输入水果的特征数据,生成一定的 算法 模型,进而可以准确预测具有这些特征的水果的类型,而深度 学习 则能自动的去发现特征进而判断。比如电商行业,在浏览淘宝时,页面中有很多都是符合你的爱好并且最近有意向购买的商品,这种个性化推荐中就涉及到深度 学习 技术,还有就是在购物界面能和你进行对话,解决疑问的淘宝智能机器人,也涉及深度 学习 技术。因此,深度 学习 仍需解决以上问题。... 是一类 分类算法 的总称,这类 算法 均以贝叶斯定理为基础,故统称贝叶斯分类。而贝叶斯分类中最 简单 的一种: 朴素贝叶斯 分类。 二、贝叶斯定理: 已知某条件概率,如何得到两个事件交换后的概率,也就是在已知P(A|B)的情况下如何求得P(B|A)。 三、 朴素贝叶斯 分类思想: 给出待分类项,求解在此项出现的条件下其他各个类别... 3. 朴素贝叶斯 分类算法 原理 朴素贝叶斯 分类算法 主要是基于概率模型建立的 分类算法 。 假设对于某分类问题,描述问题的特征向量为X=(x1,...,xl)X=(x_1,...,x_l)X=(x1​,...,xl​),标签为Z=(z1,...,zm)Z=(z_1,...,z_m)Z=(z1​,...,zm​)