贝叶斯分类是一类分类算法的总称,这类算法均以贝叶斯定理为基础,故统称为贝叶斯分类。
而朴素贝叶斯分类是贝叶斯分类中最简单,也是常见的一种分类方法。
本文将通过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)