美文网首页
朴素贝叶斯

朴素贝叶斯

作者: hlchengzi | 来源:发表于2018-08-19 19:39 被阅读0次

朴素贝叶斯法

分类算法的内容是要求给定特征,让我们得出类别,这也是所有分类问题的关键

基本概念:

贝叶斯定理P(H|D)=P(D|H)*P(H)/P(D)

我们通过对上面式子,可以把一个难求的问题变成三个相对简单的求解

朴素贝叶斯算法是假设各个特征之间相互独立

H类别集合(向量) D项集合(特征集合)其中每一个元素都是待分类项分类算法的任务就是构造分类器f。

P(H):先验 也就是样本中类别的概率 在没有任何数据的时候我所认为参数的分布

P(D|H):似验 样本中得到的

P(H|D):后验 需要最后计算的 由于需要高纬积分,很难计算

P(D):证据    

由1可知,特征向量 X 的维度不一定是一维的,可能是多维的:X=(x1,x2,x3,....xn)

因此样本类别Y的取值 这里写图片描述 是跟 样本的每一个维度取值有关的。因此可由贝叶斯定理得出下式:

则似验计算如右:

则根据全概率公式,证据:

一般来说,证据概率是一个常量

1.3.1首先我们要先抽象出偏差的概念

如果一个硬币总是正面朝上,我们就说它的偏差是1,各占一半就是0.5

1.3.2选择似然

1.求极大似然函数估计值的一般步骤:

(1) 写出似然函数

(2) 对似然函数取对数,并整理;(此步骤根据题意可以省略)

(3) 求导数

(4) 解似然方程 。

1.3.3选择先验

1.3.4计算后验

1.3.5画图

朴素贝叶斯分类的正式定义如下:

1、设X = {a1,a2,...,am}为一个待分类项,而每个a为x的一个特征属性。

2、有类别集合C={y1,y2,...yn}

3、计算P(y1|x),P(y2|x),.....P(yn|x)

4、如果 P(Yk|x) = max{P(y1|x),P(y2|x),.....P(yn|x)},则xshuyuYk

那么现在的关键就是如何计算第3步中的各个条件概率。我们可以这么做:

1、找到一个已知分类的待分类项集合,这个集合叫做训练样本集。

2、统计得到在各类别下各个特征属性的条件概率估计。即

3、如果各个特征属性是条件独立的,则根据贝叶斯定理有如下推导:

因为分母对于所有类别为常数,因为我们只要将分子最大化皆可。又因为各特征属性是条件独立的,所以有:

我们来看一个直观的例子:已知:在夏季,某公园男性穿凉鞋的概率为1/2,女性穿凉鞋的概率为2/3,并且该公园中男女比例通常为2:1,问题:若你在公园中随机遇到一个穿凉鞋的人,请问他的性别为男性或女性的概率分别为多少?

从问题看,就是上面讲的,某事发生了,它属于某一类别的概率是多少?即后验概率。

设:由已知可得:男性和女性穿凉鞋相互独立,所以

(若只考虑分类问题,只需要比较后验概率的大小,的取值并不重要)。

由贝叶斯公式算出:

朴素贝叶斯分类的优缺点

优点:

算法逻辑简单,易于实现(算法思路很简单,只要使用贝叶斯公式转化!)

分类过程中时空开销小(假设特征相互独立,只会涉及到二维存储)

缺点:

理论上,朴素贝叶斯模型与其他分类方法相比具有最小的误差率。但是实际上并非总是如此,这是因为朴素贝叶斯模型假设属性之间相互独立,这个假设在实际应用中往往是不成立的,在属性个数比较多或者属性之间相关性较大时,分类效果不好。

而在属性相关性较小时,朴素贝叶斯性能最为良好。对于这一点,有半朴素贝叶斯之类的算法通过考虑部分关联性适度改进。

总结起来,最大似然估计的目的就是:利用已知的样本结果,反推最有可能(最大概率)导致这样结果的参数值。

高斯朴素贝叶斯模型

在高斯朴素贝叶斯模型中,特征向量X的特征 通常为 连续型变量,并且假定所有特征的取值是符合高斯分布的

多项分布朴素贝叶斯模型

在多项分布朴素贝叶斯模型中,特征向量X的特征 通常为 离散型变量,并且假定所有特征的取值是符合多项分布的,可用于文本分类。

伯努利朴素贝叶斯模型

在伯努利朴素贝叶斯模型中,每个特征的取值是布尔型,或以0和1表示,所以伯努利模型中,每个特征值为0或者1。

在文本分类中,多项分布朴素贝叶斯是以文本的单词为粒度(以特征为粒度)进行计算的,即计算该单词特征在对应的文档中出现的次数,而伯努利朴素贝叶斯是为文本为粒度(以样本为粒度)进行计算的,即计算存在该单词特征的文档个数。因此伯努利朴素贝叶斯模型在一定程度上忽略了同一个文档中的单词的词频

 

import numpy#二项分布生成器a = numpy.random.binomial(n=10, p=0.7, size = 100)print(a)a_count= 0EX=0Ex=0Dx=0for i in a:    while i == 7:        a_count = a_count+1        break    Ex = Ex+a[i]for j in a:    Dx = (a[i]-Ex)*(a[i]-Ex)print(a_count)print(Ex/100)print(Dx/100)

蒙特卡洛模拟和马尔可夫链

相关文章

  • 算法笔记(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/ivxhiftx.html