朴素贝叶斯_朴素贝叶斯算法 - CSDN
朴素贝叶斯 订阅
朴素贝叶斯法是基于贝叶斯定理与特征条件独立假设的分类方法 [1]  。最为广泛的两种分类模型是决策树模型(Decision Tree Model)和朴素贝叶斯模型(Naive Bayesian Model,NBM)。和决策树模型相比,朴素贝叶斯分类器(Naive Bayes Classifier 或 NBC)发源于古典数学理论,有着坚实的数学基础,以及稳定的分类效率。同时,NBC模型所需估计的参数很少,对缺失数据不太敏感,算法也比较简单。理论上,NBC模型与其他分类方法相比具有最小的误差率。但是实际上并非总是如此,这是因为NBC模型假设属性之间相互独立,这个假设在实际应用中往往是不成立的,这给NBC模型的正确分类带来了一定影响。 展开全文
朴素贝叶斯法是基于贝叶斯定理与特征条件独立假设的分类方法 [1]  。最为广泛的两种分类模型是决策树模型(Decision Tree Model)和朴素贝叶斯模型(Naive Bayesian Model,NBM)。和决策树模型相比,朴素贝叶斯分类器(Naive Bayes Classifier 或 NBC)发源于古典数学理论,有着坚实的数学基础,以及稳定的分类效率。同时,NBC模型所需估计的参数很少,对缺失数据不太敏感,算法也比较简单。理论上,NBC模型与其他分类方法相比具有最小的误差率。但是实际上并非总是如此,这是因为NBC模型假设属性之间相互独立,这个假设在实际应用中往往是不成立的,这给NBC模型的正确分类带来了一定影响。
信息
属    于
广泛的分类模型之一
简    称
NBM
中文名
朴素贝叶斯
外文名
Naive Bayes model
朴素贝叶斯定义
贝叶斯方法是以贝叶斯原理为基础,使用概率统计的知识对样本数据集进行分类。由于其有着坚实的数学基础,贝叶斯分类算法的误判率是很低的。贝叶斯方法的特点是结合先验概率和后验概率,即避免了只使用先验概率的主观偏见,也避免了单独使用样本信息的过拟合现象。贝叶斯分类算法在数据集较大的情况下表现出较高的准确率,同时算法本身也比较简单。 [2]  朴素贝叶斯算法(Naive Bayesian algorithm) 是应用最为广泛的分类算法之一。朴素贝叶斯方法是在贝叶斯算法的基础上进行了相应的简化,即假定给定目标值时属性之间相互条件独立。也就是说没有哪个属性变量对于决策结果来说占有着较大的比重,也没有哪个属性变量对于决策结果占有着较小的比重。虽然这个简化方式在一定程度上降低了贝叶斯分类算法的分类效果,但是在实际的应用场景中,极大地简化了贝叶斯方法的复杂性。 [3] 
收起全文
精华内容
参与话题
  • 机器学习之朴素贝叶斯算法详解

    万次阅读 多人点赞 2019-10-29 21:29:04
    朴素贝叶斯公式: P(A|B)=P(A)P(B|A)P(B)P(A|B)=P(A)P(B|A)P(B) P(A|B) = \frac{P(A)P(B|A)}{P(B)} 一、概率基础知识: 条件概率是指事件A在另外一个事件B已经发生条件下的发生概率。 条件概率表示为: P(A|B)...

    一、 朴素贝叶斯

    1、概率基础知识:

    条件概率是指事件A在另外一个事件B已经发生条件下的发生概率。 条件概率表示为: P(A|B), 读作“在B条件下A的概率”。
    若只有两个事件A, B, 那么:
    P(AB)=P(AB)P(B)=P(BA)P(A) P(AB) = P(A|B)P(B)=P(B|A)P(A)
    P(AB)=P(AB)P(B) P(A|B) = \frac{P(AB)}{P(B)}
    那么:
    P(AB)=P(BA)P(A)P(B) P(A|B) = \frac{P(B|A)*P(A)}{P(B)}

    全概率公式: 表示若事件A1,A2,…,An构成一个完备事件组且都有正概率,则对任意一个事件B都有公式成立。
    这里写图片描述

    P(B)=P(A1B)+P(A2B)+...+P(AnB)=P(AiB)=P(BAi)P(Ai) \begin{aligned} P(B) &= P(A_1B)+P(A_2B)+...+P(A_nB) \\ &=\sum{}P(A_iB) \\ &=\sum{}P(B|A_i)*P(A_i) \end{aligned}

    贝叶斯公式是将全概率公式带入到条件概率公式当中, 对于事件Ak和事件B有:
    P(AkB)=P(BAk)P(Ak)P(BAi)P(Ai) P(A_k|B)=\frac{P(B|A_k)*P(A_k)}{\sum{}P(B|A_i)*P(A_i)}
    对于P(AkB)P(A_k|B)来说, 分母 P(BAi)P(Ai)∑P(B|A_i)*P(A_i) 为一个固定值, 因为我们只需要比较P(AkB)P(A_k|B)的大小,
    所以可以将分母固定值去掉, 并不会影响结果。 因此, 可以得到下面公式:
    P(AkB)=P(Ak)P(BAk) P(A_k|B)=P(A_k)*P(B|A_k)
    $P(A_k) $先验概率, P(AkB)P(A_k|B) 后验概率, P(BAk)P(B|A_k) 似然函数
    先验*似然=后验

    特征条件独立假设在分类问题中,常常需要把一个事物分到某个类别中。 一个事物又有许多属性,即x=(x1,x2,···,xn)。常常类别也是多个, 即y=(y1,y2,,yk)P(y1x),P(y2x),,P(ykx)y=(y_1,y_2,···,y_k)。P(y_1|x),P(y_2|x),…,P(y_k|x), 表示x属于某个分类的概率,那么,我们需要找出其中最大的那个概率P(yk|x), 根据上一步得到的公式可得:
    P(ykx)=P(yk)P(xyk) P(y_k|x) = P(y_k)*P(x|y_k)

    就样本x有n个属性:x=(x1,x2,,xn)x=(x_1,x_2,···,x_n)
    所以:P(ykX)=P(yk)P(x1,x2,,xnyk)P(y_k|X) =P(y_k) * P(x_1,x_2,···,x_n|y_k)
    条件独立假设,就是各条件之间互不影响
    所以样本的联合概率就是连乘:P(x1,x2,,xnyk)=P(xiyk)P(x_1,x_2,···,x_n|y_k) = ∏P(x_i|y_k)
    最终公式为:P(ykx)=P(yk)P(xiyk)P(y_k|x) =P(y_k) * ∏P(x_i|y_k)
    根据公式P(ykx)=P(yk)P(xiyk)P(y_k|x) =P(y_k) * ∏P(x_i|y_k), 就可以做分类问题了

    朴素贝叶斯公式:
    P(ykx)=P(yk)P(xiyk)P(y_k|x) =P(y_k) * ∏P(x_i|y_k)

    【例2】一起汽车撞人逃跑事件,已知只有两种颜色的车,比例为蓝色15% 绿色85%,目击者指证是蓝车,但根据现场分析,当时那种条件目击者看正确车的颜色的可能性是
    80%,那么,肇事的车是蓝车的概率到底是多少()
    答案:
    设A={目击者看到车是蓝色的}, B={车的实际颜色是蓝色}
    P(A)=80%×15%+20%×85%=29%
    即: 车是蓝色(15%)×目击者看正确(80%)+车是绿色(85%)×目击
    者看错了(20%)
    P(AB)=80%×15%=12%
    即: 车是蓝色(15%)×目击者看正确(80%)
    P(B|A)=P(AB)/P(A)=12%/29%≈41%

    2、朴素贝叶斯模型流程:

    **朴素贝叶斯的基本方法:**在统计数据的基础上,依据条件概率公式,计算当前特征的样本属于某个分类的概率,选最大的概率分类

    对于给出的待分类项,求解在此项出现的条件下各个类别出现的概率,哪个最大,就认为此待分类项属于哪个类别:

    ①计算流程:

    (1) x={a1,a2,....,am}x =\{a_1,a_2,....,a_m\}为待分类项, 每个a为x的一个特征属性
    (2)有类别集合$C= {y_1,y_2,…,y_n} $
    (3)计算P(y1x),P(y2x),...,P(ynx)P(y_1|x),P(y_2|x),...,P(y_n|x)
    (4)如果P(ykx)=max{P(y1x),P(y2x),...,P(ynx)}P(y_k|x) = max\{P(y_1|x),P(y_2|x),...,P(y_n|x)\}

    如何计算第3步中的各个条件概率?
    课堂案例-2
    1、 找到一个已知分类的待分类项集合,这个集合叫做训练样本集。
    2、 统计得到在各类别下各个特征属性的条件概率估计。 即:
    $P(a_1|y_1),P(a_2,y_2),…,P(a_m|y_1) $
    3、 如果各个特征属性是条件独立的,则根据贝叶斯定理有如下推导:
    P(yix)=P(xyi)P(yi)P(x) P(y_i|x)=\frac{P(x|y_i)P(y_i)}{P(x)}
    因为分母对于所有类别为常数, 因为我们只要将分子最大化皆可。 又因为各特征属性是条
    件独立的, 所以有:
    $P(y_k|x) =P(y_k) * ∏P(x_i|y_k) $
    P(xyi)P(yi)=P(aiyi)P(a2yi)...P(amyi)P(yi)=P(yi)j=1mP(ajyi) P(x|y_i)P(y_i)=P(a_i|y_i)P(a_2|y_i)...P(a_m|y_i)P(y_i)=P(y_i)\prod_{j=1}^mP(a_j|y_i)

    例题:
    这里写图片描述
    这里写图片描述

    ②三个阶段:

    第一阶段——准备阶段, 根据具体情况确定特征属性, 对每个特征属性进行适当划分, 然后由人工对一部分待分类项进行分类,形成训练样本集合。这一阶段的输入是所有待分类数据,输出是特征属性和训练样本。这一阶段是整个朴素贝叶斯分类中唯一需要人工完成的阶段, 其质量对整个过程将有重要影响,分类器的质量很大程度上由特征属性、特征属性划分及训练样本质量决定。

    第二阶段——分类器训练阶段, 这个阶段的任务就是生成分类器,主要工作是计算每个类别在训练样本中的出现频率及每个特征属性划分对每个类别的条件概率估计, 并将结果记录。 其输入是特征属性和训练样本,输出是分类器。这一阶段是机械性阶段, 根据前面讨论的公式可以由程序自动计算完成。

    第三阶段——应用阶段。 这个阶段的任务是使用分类器对待分类项进行分类, 其输入是分类器
    和待分类项, 输出是待分类项与类别的映射关系。这一阶段也是机械性阶段, 由程序完成。

    3、拉普拉斯平滑

    为了解决零概率的问题,法国数学家拉普拉斯最早提出用加1的方法估计没有出现过的现象的概率,所以加法平滑也叫做拉普拉斯平滑。假定训练样本很大时,每个分量x的计数加1造成的估计概率变化可以忽略不计,但可以方便有效的避免零概率问题。

    公式P(ykx)=P(yk)P(xiyk)P(y_k|x) =P(y_k) * ∏P(x_i|y_k), 是一个多项乘法公式, 其中有一项数值为0, 则整个公式就为
    0, 显然不合理, 避免每一项为零的做法就是, 在分子、 分母上各加一个数值。
    P(y)=Dy+1D+N P(y)=\frac{|D_y|+1}{|D|+N}
    Dy|D_y|表示分类y的样本数,|D|样本总数,N是样本总数加上分类总数
    P(xiDy)=Dy,xi+1Dy+Ni P(x_i|D_y) = \frac{|D_y,x_i|+1}{|D_y|+N_i}
    Dy,xi|D_y,x_i|表示分类y属性i的样本数, Dy|D_y|表示分类y的样本数, Ni表示i属性的可能的取值数
    例子:
    假设在文本分类中,有3个类,C1、C2、C3,在指定的训练样本中, 某个词语K1,在各个类中观测计数分别为0, 990, 10, K1的概率为0, 0.99,0.01,对这三个量使用拉普拉斯平滑的计算方法如下:
    1/1003 = 0.001, 991/1003=0.988, 11/1003=0.011
    在实际的使用中也经常使用加 λ\lambda1λ01≥\lambda≥0) 来代替简单加1。 如果对N个计数都加上λ\lambda, 这时分母也要记得加上NλN*\lambda

    二、 半朴素贝叶斯分类器

    概念

    在朴素的分类中, 我们假定了各个属性之间的独立,这是为了计算方便,防止过多的属性之间的依赖导致的大量计算。这正是朴素的含义,虽然朴素贝叶斯的分类效果不错,但是属性之间毕竟是有关联的, 某个属性依赖于另外的属性, 于是就有了半朴素贝叶斯分类器:

    因此, 对某个样本x 的预测朴素贝叶斯公式就由如下:

    h(x)=max(P(c)i=1dP(Xic)) h(x)=max(P(c)\prod_{i=1}^dP(X_i|c))
    修正为如下的半朴素贝叶斯分类器公式:
    h(x)=max(P(c)i=1dP(Xipai)) h(x)=max(P(c)\prod_{i=1}^dP(X_i|pa_i))
    从上式中, 可以看到类条件概率 P(xi | c) 修改为了 xi 依赖于分类c 和 一个依赖属性pai
    上述超父ODE算法: SPODE。 显然, 这个算法是每个属性值只与其他唯一 一个有依赖关
    系。 基于它之上, 又提出另一种基于集成学习机制, 更为强大的独依赖分类器, AODE,
    算法思路很简单, 就是在SPODE算法的基础上在外面包一个循环, 就是尝试将每个属性
    作为超父属性来构建SPODE, 请看下面的公式, 在SPODE外面包了一个循环, 然后求它
    们的和作为当前预测样本的分类:
    h(x)=max(j=1dP(c,xj)i=1dP(xic,xj)) h(x)=max(\sum_{j=1}^dP(c,x_j)\prod_{i=1}^dP(x_i|c,x_j))
    1.SOPDE方法。 这种方法是假定所有的属性都依赖于共同的一个父属性。
    2.TAN方法。 每个属性依赖的另外的属性由最大带权生成树来确定。
    (1) 先求每个属性之间的互信息来作为他们之间的权值。
    (2) 构件完全图。 权重是刚才求得的互信息。然后用最大带权生成树算法求得此图的最大带权的生成树。
    (3) 找一个根变量, 然后依次将图变为有向图。
    (4) 添加类别y到每个属性的的有向边。
    3 . 朴素贝叶斯与两种半朴素贝叶斯分类器所考虑的属性依赖关系, 假定每个属性仅依赖于
    其他最多一个属性, 称其依赖的这个属性为其超父属性, 这种关系称为: 独依赖估计
    (ODE) 。

    三、朴素贝叶斯的面试题

    1、 朴素贝叶斯与LR的区别?
    简单来说:朴素贝叶斯是生成模型,根据已有样本进行贝叶斯估计学习出先验概率P(Y)和条件概率P(X|Y),进而求出联合分布概率P(XY),最后利用贝叶斯定理求解P(Y|X), 而LR是判别模型,根据极大化对数似然函数直接求出条件概率P(Y|X);朴素贝叶斯是基于很强的条件独立假设(在已知分类Y的条件下,各个特征变量取值是相互独立的),而LR则对此没有要求;朴素贝叶斯适用于数据集少的情景,而LR适用于大规模数据集。

    2、朴素贝叶斯“朴素”在哪里?
    简单来说:利用贝叶斯定理求解联合概率P(XY)时,需要计算条件概率P(X|Y)。在计算P(X|Y)时,朴素贝叶斯做了一个很强的条件独立假设(当Y确定时,X的各个分量取值之间相互独立),即P(X1=x1,X2=x2,…Xj=xj|Y=yk) = P(X1=x1|Y=yk)P(X2=x2|Y=yk)…*P(Xj=xj|Y=yk)。

    3、 在估计条件概率P(X|Y)时出现概率为0的情况怎么办?
    简单来说:引入λ,当λ=1时称为拉普拉斯平滑。

    4、 朴素贝叶斯的优缺点
    优点:对小规模的数据表现很好,适合多分类任务,适合增量式训练。
    缺点:对输入数据的表达形式很敏感(离散、连续,值极大极小之类的)。

    重点:
    面试的时候怎么回答朴素贝叶斯呢?
    首先朴素贝斯是一个生成模型(很重要),其次它通过学习已知样本,计算出联合概率,再求条件概率。

    生成模式和判别模式的区别:
    生成模式:由数据学得联合概率分布,求出条件概率分布P(Y|X)的预测模型;
    常见的生成模型有:朴素贝叶斯、隐马尔可夫模型、高斯混合模型、文档主题生成模型(LDA)、限制玻尔兹曼机
    判别模式:由数据学得决策函数或条件概率分布作为预测模型
    常见的判别模型有:K近邻、SVM、决策树、感知机、线性判别分析(LDA)、线性回归、传统的神经网络、逻辑斯蒂回归、boosting、条件随机场

    展开全文
  • 详解朴素贝叶斯分类算法

    万次阅读 多人点赞 2018-08-15 22:25:31
    带你搞懂朴素贝叶斯分类算法   带你搞懂朴素贝叶斯分类算 贝叶斯分类是一类分类算法的总称,这类算法均以贝叶斯定理为基础,故统称为贝叶斯分类。而朴素朴素贝叶斯分类是贝叶斯分类中最简单,也是常见的一种分类...

    原文地址:https://blog.csdn.net/amds123/article/details/70173402

    带你搞懂朴素贝叶斯分类算法

     

    带你搞懂朴素贝叶斯分类算

    贝叶斯分类是一类分类算法的总称,这类算法均以贝叶斯定理为基础,故统称为贝叶斯分类。而朴素朴素贝叶斯分类是贝叶斯分类中最简单,也是常见的一种分类方法。这篇文章我尽可能用直白的话语总结一下我们学习会上讲到的朴素贝叶斯分类算法,希望有利于他人理解。

     

    1  分类问题综述

     对于分类问题,其实谁都不会陌生,日常生活中我们每天都进行着分类过程。例如,当你看到一个人,你的脑子下意识判断他是学生还是社会上的人;你可能经常会走在路上对身旁的朋友说“这个人一看就很有钱”之类的话,其实这就是一种分类操作。

     

    既然是贝叶斯分类算法,那么分类的数学描述又是什么呢?

     

    从数学角度来说,分类问题可做如下定义:已知集合,确定映射规则y = f(x),使得任意有且仅有一个,使得成立。

     

    其中C叫做类别集合,其中每一个元素是一个类别,而I叫做项集合(特征集合),其中每一个元素是一个待分类项,f叫做分类器。分类算法的任务就是构造分类器f。

     

    分类算法的内容是要求给定特征,让我们得出类别,这也是所有分类问题的关键。那么如何由指定特征,得到我们最终的类别,也是我们下面要讲的,每一个不同的分类算法,对应着不同的核心思想。

     

    本篇文章,我会用一个具体实例,对朴素贝叶斯算法几乎所有的重要知识点进行讲解。

     

    2  朴素贝叶斯分类

    那么既然是朴素贝叶斯分类算法,它的核心算法又是什么呢?

    是下面这个贝叶斯公式:

     

     

    换个表达形式就会明朗很多,如下:

     

     

    我们最终求的p(类别|特征)即可!就相当于完成了我们的任务。

     

    3  例题分析

    下面我先给出例子问题。

     

    给定数据如下:

     

     

    现在给我们的问题是,如果一对男女朋友,男生想女生求婚,男生的四个特点分别是不帅,性格不好,身高矮,不上进,请你判断一下女生是嫁还是不嫁?

     

    这是一个典型的分类问题,转为数学问题就是比较p(嫁|(不帅、性格不好、身高矮、不上进))与p(不嫁|(不帅、性格不好、身高矮、不上进))的概率,谁的概率大,我就能给出嫁或者不嫁的答案!

    这里我们联系到朴素贝叶斯公式:

     

     

    我们需要求p(嫁|(不帅、性格不好、身高矮、不上进),这是我们不知道的,但是通过朴素贝叶斯公式可以转化为好求的三个量.

     

    p(不帅、性格不好、身高矮、不上进|嫁)、p(不帅、性格不好、身高矮、不上进)、p(嫁)(至于为什么能求,后面会讲,那么就太好了,将待求的量转化为其它可求的值,这就相当于解决了我们的问题!)

     

    4  朴素贝叶斯算法的朴素一词解释

    那么这三个量是如何求得?

     

    是根据已知训练数据统计得来,下面详细给出该例子的求解过程。

    回忆一下我们要求的公式如下:

     

     

    那么我只要求得p(不帅、性格不好、身高矮、不上进|嫁)、p(不帅、性格不好、身高矮、不上进)、p(嫁)即可,好的,下面我分别求出这几个概率,最后一比,就得到最终结果。

     

    p(不帅、性格不好、身高矮、不上进|嫁) = p(不帅|嫁)*p(性格不好|嫁)*p(身高矮|嫁)*p(不上进|嫁),那么我就要分别统计后面几个概率,也就得到了左边的概率!

     

    等等,为什么这个成立呢?学过概率论的同学可能有感觉了,这个等式成立的条件需要特征之间相互独立吧!

     

    对的!这也就是为什么朴素贝叶斯分类有朴素一词的来源,朴素贝叶斯算法是假设各个特征之间相互独立,那么这个等式就成立了!

     

    但是为什么需要假设特征之间相互独立呢?

     

     

    1、我们这么想,假如没有这个假设,那么我们对右边这些概率的估计其实是不可做的,这么说,我们这个例子有4个特征,其中帅包括{帅,不帅},性格包括{不好,好,爆好},身高包括{高,矮,中},上进包括{不上进,上进},那么四个特征的联合概率分布总共是4维空间,总个数为2*3*3*2=36个。

     

    36个,计算机扫描统计还可以,但是现实生活中,往往有非常多的特征,每一个特征的取值也是非常之多,那么通过统计来估计后面概率的值,变得几乎不可做,这也是为什么需要假设特征之间独立的原因。

     

    2、假如我们没有假设特征之间相互独立,那么我们统计的时候,就需要在整个特征空间中去找,比如统计p(不帅、性格不好、身高矮、不上进|嫁),

     

    我们就需要在嫁的条件下,去找四种特征全满足分别是不帅,性格不好,身高矮,不上进的人的个数,这样的话,由于数据的稀疏性,很容易统计到0的情况。 这样是不合适的。

     

    根据上面俩个原因,朴素贝叶斯法对条件概率分布做了条件独立性的假设,由于这是一个较强的假设,朴素贝叶斯也由此得名!这一假设使得朴素贝叶斯法变得简单,但有时会牺牲一定的分类准确率。

     

    好的,上面我解释了为什么可以拆成分开连乘形式。那么下面我们就开始求解!

     

    我们将上面公式整理一下如下:

     

     

    下面我将一个一个的进行统计计算(在数据量很大的时候,根据中心极限定理,频率是等于概率的,这里只是一个例子,所以我就进行统计即可)。

     

    p(嫁)=?

    首先我们整理训练数据中,嫁的样本数如下:

     

    则 p(嫁) = 6/12(总样本数) = 1/2

     

    p(不帅|嫁)=?统计满足样本数如下:

     

    则p(不帅|嫁) = 3/6 = 1/2 在嫁的条件下,看不帅有多少

     

    p(性格不好|嫁)= ?统计满足样本数如下:

     

    则p(性格不好|嫁)= 1/6

     

    p(矮|嫁) = ?统计满足样本数如下:

     

    则p(矮|嫁) = 1/6

     

    p(不上进|嫁) = ?统计满足样本数如下:

     

    则p(不上进|嫁) = 1/6

     

    下面开始求分母,p(不帅),p(性格不好),p(矮),p(不上进)

    统计样本如下:

     

     

    不帅统计如上红色所示,占4个,那么p(不帅) = 4/12 = 1/3

     

     

    性格不好统计如上红色所示,占4个,那么p(性格不好) = 4/12 = 1/3

     

     

    身高矮统计如上红色所示,占7个,那么p(身高矮) = 7/12

     

     

    不上进统计如上红色所示,占4个,那么p(不上进) = 4/12 = 1/3

     

    到这里,要求p(不帅、性格不好、身高矮、不上进|嫁)的所需项全部求出来了,下面我带入进去即可,

     

    = (1/2*1/6*1/6*1/6*1/2)/(1/3*1/3*7/12*1/3)

     

    下面我们根据同样的方法来求p(不嫁|不帅,性格不好,身高矮,不上进),完全一样的做法,为了方便理解,我这里也走一遍帮助理解。首先公式如下:

     

     

    下面我也一个一个来进行统计计算,这里与上面公式中,分母是一样的,于是我们分母不需要重新统计计算!

     

    p(不嫁)=?根据统计计算如下(红色为满足条件):

     

     

    则p(不嫁)=6/12 = 1/2

     

    p(不帅|不嫁) = ?统计满足条件的样本如下(红色为满足条件):

     

     

    则p(不帅|不嫁) = 1/6

     

    p(性格不好|不嫁) = ?据统计计算如下(红色为满足条件):


    则p(性格不好|不嫁) =3/6 = 1/2

     

    p(矮|不嫁) = ?据统计计算如下(红色为满足条件):

     

    则p(矮|不嫁) = 6/6 = 1

     

    p(不上进|不嫁) = ?据统计计算如下(红色为满足条件):

    则p(不上进|不嫁) = 3/6 = 1/2

     

    那么根据公式:

     

    p (不嫁|不帅、性格不好、身高矮、不上进) = ((1/6*1/2*1*1/2)*1/2)/(1/3*1/3*7/12*1/3)

    很显然(1/6*1/2*1*1/2) > (1/2*1/6*1/6*1/6*1/2)

     

    于是有p (不嫁|不帅、性格不好、身高矮、不上进)>p (嫁|不帅、性格不好、身高矮、不上进)

     

    所以我们根据朴素贝叶斯算法可以给这个女生答案,是不嫁!!!!

     

    5  朴素贝叶斯分类的优缺点

    优点:

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

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

     

    缺点:

     

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

     

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

     

    整个例子详细的讲解了朴素贝叶斯算法的分类过程,希望对大家的理解有帮助~

     

    参考:李航博士《统计学习方法》

    算法杂货铺--分类算法之朴素贝叶斯分类(Naive Bayesian classification)

    展开全文
  • 朴素贝叶斯分类:原理

    万次阅读 多人点赞 2019-06-06 00:04:40
    贝叶斯原理是英国数学家托马斯·贝叶斯提出的。贝叶斯是个很神奇的人,他的经历类似梵高。生前没有得到重视,死后,他写的一篇关于归纳推理的论文被朋友翻了出来,并发表了。这一发表不要紧,结果这篇论文的思想直接...

    贝叶斯原理是英国数学家托马斯·贝叶斯提出的。贝叶斯是个很神奇的人,他的经历类似梵高。生前没有得到重视,死后,他写的一篇关于归纳推理的论文被朋友翻了出来,并发表了。这一发表不要紧,结果这篇论文的思想直接影响了接下来两个多世纪的统计学,是科学史上著名的论文之一。

    贝叶斯原理

    贝叶斯为了解决一个叫“逆向概率”问题写了一篇文章,尝试解答在没有太多可靠证据的情况下,怎样做出更符合数学逻辑的推测。
    什么是“逆向概率”呢?
    所谓“逆向概率”是相对“正向概率”而言。正向概率的问题很容易理解,比如我们已经知道袋子里面有 N 个球,不是黑球就是白球,其中 M 个是黑球,那么把手伸进去摸一个球,就能知道摸出黑球的概率是多少。但这种情况往往是上帝视角,即了解了事情的全貌再做判断。

    一个袋子里有10个球,其中6个黑球,4个白球;那么随机抓一个黑球的概率是0.6!

    在现实生活中,我们很难知道事情的全貌。贝叶斯则从实际场景出发,提了一个问题:如果我们事先不知道袋子里面黑球和白球的比例,而是通过我们摸出来的球的颜色,能判断出袋子里面黑白球的比例么?

    正是这样的一个问题,影响了接下来近 200 年的统计学理论。
    这是因为,贝叶斯原理与其他统计学推断方法截然不同,它是建立在主观判断的基础上:在我们不了解所有客观事实的情况下,同样可以先估计一个值,然后根据实际结果不断进行修正。
    假设有一种病叫做“贝叶死”,它的发病率是万分之一,现有一种测试可以检验一个人是否得病的准确率是 99.9%,它的误报率是 0.1%,那么现在的问题是,如果一个人被查出来患有“叶贝死”,实际上患有的可能性有多大?

    问题分析:随机拉一个人进行检查,误报率是0.1%。那么如果一个人被检查患病,实际上患有的概率。也就是说,检查出患病准确率是99.9%,那么实际患病的概率是不是99.9%?

    先验概率:
    通过经验来判断事情发生的概率,比如说“贝叶死”的发病率是万分之一,就是先验概率。

    后验概率:
    后验概率就是发生结果之后,推测原因的概率。比如说某人查出来了患有“贝叶死”,那么患病的原因可能是 A、B 或 C。**患有“贝叶死”是因为原因 A 的概率就是后验概率。**它是属于条件概率的一种。

    条件概率:
    事件 A 在另外一个事件 B 已经发生条件下的发生概率,表示为 P(A|B)。比如原因 A 的条件下,患有“贝叶死”的概率,就是条件概率。

    似然函数(likelihood function):

    你可以把概率模型的训练过程理解为求参数估计的过程。似然在这里就是可能性的意思,它是关于统计参数的函数。

    介绍完贝叶斯原理中的这几个概念,我们再来看下贝叶斯原理,实际上贝叶斯原理就是求解后验概率,我们假设:A 表示事件 “测出为阳性”, 用 B1 表示“患有贝叶死”, B2 表示“没有患贝叶死”。

    患有贝叶死的情况下,测出为阳性的概率为 P(A|B1)=99.9%,没有患贝叶死,但测出为阳性的概率为 P(A|B2)=0.1%。
    对万分之一的解读:。患有贝叶死的概率为 P(B1)=0.01%,没有患贝叶死的概率 P(B2)=99.99%。

    那么我们检测出来为阳性,而且是贝叶死的概率 P(B1,A)–联合概率分布
    在这里插入图片描述
    在这里插入图片描述
    然后我们想求得是检查为阳性的情况下,患有贝叶死的概率,也即是 P(B1|A)
    在这里插入图片描述
    在这里插入图片描述

    朴素贝叶斯

    朴素贝叶斯,它是一种简单但极为强大的预测建模算法。之所以称为朴素贝叶斯,**是因为它假设每个输入变量是独立的。**这个假设很硬,现实生活中根本不满足,但是这项技术对于绝大部分的复杂问题仍然非常有效。

    朴素贝叶斯模型由两种类型的概率组成:
    1、每个类别的概率P(Cj);
    2、每个属性的条件概率P(Ai|Cj)。

    我们回归到贝叶死的案例中来,类型概率是患病,不患病;条件概率是:患病的条件下,被检查出阳性的概率,不患病的条件下,检查出阳性的概率(误诊的概率)。要求的被检查出阳性,那么患病的概率(贝叶斯是求后验概率–知道结果,推测原因的概率,“求什么什么是类别,其它的就是属性条件”!)

    为了训练朴素贝叶斯模型,我们需要先给出训练数据,以及这些数据对应的分类。那么上面这两个概率,也就是类别概率和条件概率。他们都可以从给出的训练数据中计算出来。一旦计算出来,概率模型就可以使用贝叶斯原理对新数据进行预测。

    贝叶斯原理、贝叶斯分类和朴素贝叶斯这三者之间是有区别的
    贝叶斯原理是最大的概念,它解决了概率论中“逆向概率”的问题,在这个理论基础上,人们设计出了贝叶斯分类器,朴素贝叶斯分类是贝叶斯分类器中的一种,也是最简单,最常用的分类器。朴素贝叶斯之所以朴素是因为它假设属性是相互独立的,因此对实际情况有所约束,**如果属性之间存在关联,分类准确率会降低。**不过好在对于大部分情况下,朴素贝叶斯的分类效果都不错。

    在这里插入图片描述

    离散数据案例

    我以下面的数据为例,这些是根据你之前的经验所获得的数据。然后给你一个新的数据:身高“高”、体重“中”,鞋码“中”,请问这个人是男还是女?
    在这里插入图片描述
    男女就是类型,男C1,女C2;
    属性条件:身高A1,体重A2,鞋码A3
    那么我们想求在 A1、A2、A3 属性下,Cj 的概率,用条件概率表示就是 P(Cj|A1A2A3)。根据上面讲的贝叶斯的公式,我们可以得出:
    在这里插入图片描述
    因为一共有 2 个类别,所以我们只需要求得 P(C1|A1A2A3) 和P(C2|A1A2A3) 的概率即可,然后比较下哪个分类的可能性大,就是哪个分类结果。
    等价于求 P(A1A2A3|Cj)P(Cj) 最大值

    我们假定 Ai 之间是相互独立的,那么:
    在这里插入图片描述
    在这里插入图片描述

    连续数据案例

    在这里插入图片描述
    那么如果给你一个新的数据,身高 180、体重 120,鞋码 41,请问该人是男是女呢?
    公式还是上面的公式,这里的困难在于,由于身高、体重、鞋码都是连续变量,不能采用离散变量的方法计算概率。而且由于样本太少,所以也无法分成区间计算。怎么办呢?

    这时,可以假设男性和女性的身高、体重、鞋码都是正态分布通过样本计算出均值和方差,也就是得到正态分布的密度函数。
    有了密度函数,就可以把值代入,算出某一点的密度函数的值。

    比如,男性的身高是均值 179.5、标准差为 3.697 的正态分布。(我们选择不同条件下的样本,得出的均值,标准差就是条件下的概率分布了。这点稍后计算中体现)

    所以男性的身高为 180 的概率为 0.1069。怎么计算得出的呢? –excel

    NORMDIST(x,mean,standard_dev,cumulative) 函数,一共有 4 个参数:
    在这里插入图片描述
    这里我们使用的是 NORMDIST(180,179.5,3.697,0)=0.1069。
    同理我们可以计算得出男性体重为 120 的概率为 0.000382324,
    男性鞋码为 41 号的概率为 0.120304111。
    在这里插入图片描述
    很明显这组数据分类为男的概率大于分类为女的概率。

    总结:

    朴素贝叶斯分类常用于文本分类,尤其是对于英文等语言来说,分类效果很好。它常用于垃圾文本过滤、情感预测、推荐系统等。

    第一阶段:准备阶段
    在这个阶段我们需要确定特征属性,比如上面案例中的“身高”、“体重”、“鞋码”等,同时明确预测值是什么。并对每个特征属性进行适当划分,然后由人工对一部分数据进行分类,形成训练样本。

    这一阶段是整个朴素贝叶斯分类中唯一需要人工完成的阶段,其质量对整个过程将有重要影响,分类器的质量很大程度上由特征属性、特征属性划分及训练样本质量决定。

    第二阶段:训练阶段

    这个阶段就是生成分类器,主要工作是计算每个类别在训练样本中的出现频率每个特征属性划分对每个类别的条件概率。

    输入是特征属性和训练样本,输出是分类器。

    第三阶段:应用阶段

    这个阶段是使用分类器对新数据进行分类。

    输入是分类器和新数据,输出是新数据的分类结果。

    可以考虑:自编程实现第一阶段,第二阶段!

    思考题:

    如果你的女朋友,在你的手机里发现了和别的女人的暧昧短信,于是她开始思考了 3 个概率问题,你来判断下下面的 3 个概率分别属于哪种概率:

    1、你在没有任何情况下,出轨的概率;(先验概率)
    2、在你的手机里发现了暧昧短信,认为你出轨的概率。(条件概率)
    3、如果你出轨了,那么你的手机里有暧昧短信的概率;(后验概率)

    对应到贝叶斯案例
    1、假设有一种病叫做“贝叶死”,它的发病率是万分之一,
    2、现有一种测试可以检验一个人是否得病的准确率是 99.9%,它的误报率是 0.1%
    3、那么现在的问题是,如果一个人被查出来患有“叶贝死”,实际上患有的可能性有多大?

    tips:知道客观事实,诊断出病/认为你出轨(主观判断)这是条件概率–知道原因,推测结果的概率。
    另一种局面:认为你出轨/诊断出病,推测原因(客观事实)出现的概率这是后验概率(知道结果推测原因发生的概率)

    贝叶斯算法的优缺点

    优点:
        (1)朴素贝叶斯模型发源于古典数学理论,有稳定的分类效率。
        (2)对小规模的数据表现很好,能个处理多分类任务,适合增量式训练,尤其是数据量超出内存时,我们可以一批批的去增量训练。
        (3)对缺失数据不太敏感,算法也比较简单,常用于文本分类。
      缺点:
        (1)理论上,朴素贝叶斯模型与其他分类方法相比具有最小的误差率。但是实际上并非总是如此,这是因为朴素贝叶斯模型给定输出类别的情况下,假设属性之间相互独立,这个假设在实际应用中往往是不成立的,在属性个数比较多或者属性之间相关性较大时,分类效果不好。而在属性相关性较小时,朴素贝叶斯性能最为良好。对于这一点,有半朴素贝叶斯之类的算法通过考虑部分关联性适度改进。
        (2)需要知道先验概率,且先验概率很多时候取决于假设,假设的模型可以有很多种,因此在某些时候会由于假设的先验模型的原因导致预测效果不佳。
        (3)由于我们是通过先验和数据来决定后验的概率从而决定分类,所以分类决策存在一定的错误率。
        (4)对输入数据的表达形式很敏感。

    参考文献

    数据分析实战45讲
    统计学习方法(李航)
    理论推导看这里:https://www.jianshu.com/p/b6cadf53b8b8

    展开全文
  • 深入理解条件概率。详细讲解朴素贝叶斯的数学推导过程,能够使用原生代码完成朴素贝叶斯代码的编写。能够调用sklearn库完成朴素贝叶斯代码的编写。能够理解垃圾邮件分类原理并使用朴素贝叶斯完成垃圾邮件的分类。
  • 机器学习案例入门实战教程,该课程以python3为基础,从随机变量与概率分布入手,0基础系统学习朴素贝叶斯,三种分布高斯分布,多项式分布,伯努利分布。两个实战案例(一个wine分类,一个NLP舆情分析)
  • 朴素贝叶斯分类模型(一)

    千次阅读 多人点赞 2019-03-06 15:41:11
    四、朴素贝叶斯分类器 总结 前言 什么是分类算法 通俗地讲分类算法就是把大量已知特征及类别的样本对象输入计算机,让计算机根据这些已知的类别与特征归纳出类别与特征之间的规律(准确地说应该是分类模型)...

    目录

    前言

    一、简述贝叶斯定理

    二、贝叶斯定理的推导

    三、贝叶斯定理的例子说明

    四、朴素贝叶斯分类器

    总结


    前言

      什么是分类算法

       通俗地讲分类算法就是把大量已知特征及类别的样本对象输入计算机,让计算机根据这些已知的类别与特征归纳出类别与特征之间的规律(准确地说应该是分类模型),最终目的是运用得到的分类模型对新输入的对象(该对象已知特征,类别是不知道的)判断出该对象所属分类。   

       朴素贝叶斯分类算法

         分类算法常用的有很多种,朴素贝叶斯算法是其中一个比较常用的,之所以称为朴素贝叶斯算法主要是因为该算法最基本的原理是基于贝叶斯定理的,称为朴素是因为该算法成立的前提是特征之间必须得是独立的。

         朴素贝叶斯(Naive Bayes)算法理论基础是基于贝叶斯定理和条件独立性假设的一种分类方法。 

       

    一、简述贝叶斯定理

    贝叶斯公式如下所示:

                                            

    换个比较形象的形式也可如下

              

      公式二很直白地说明的了贝叶斯模型的用途以及其原理。

      通俗地说在 B 出现的前提下 A 出现的概率,等于 A 和 B 都出现的概率除以 B 出现的概率。

      换句话说就是后验概率和先验概率的关系。

    公式解说:

    P(A)是先验概率,表示每种类别分布的概率;

    P(B|A)是条件概率,表示在某种类别前提下,某事发生的概率;该条件概率可通过统计而得出,这里需要引入极大似然估计概念,详见后文。

    P(A|B)是后验概率,表示某事发生了,并且它属于某一类别的概率,有了这个后验概率,便可对样本进行分类。后验概率越大,说明某事物属于这个类别的可能性越大,便越有理由把它归到这个类别下。

    二、贝叶斯定理的推导

    首先假设A和B为两个不相互独立的事件,做图如下:

                      

    由上图可以看出,在事件B已经发生的情况下,事件A发生的概率为事件A和事件B的交集除以事件B:

                                       P(A|B) = P(A\cap B)/ P(B)

    同理,在事件A已经发生的情况下,事件B发生的概率为事件A和事件B的交集除以事件A:

                                       P(B|A) = P(B\cap A)/ P(A)

               公式解说:

               通过上图图形面积可以比较形象地得出上面的公式。

              由上面的公式可以得到:

                                                  

              上式通过转换便可得到贝叶斯定理:

                                                       

    公式解说:

    1、各个事件不相互独立,注意事件对应的特征是独立的。

    P(AB) 表示 A,B 事件同时发生的概率,如果 A 和 B 是相互独立的两个事件,那么:

    P(A|B) = P(A) 或 P(B|A) = P(B),因此要满足贝叶斯公式必需得各个事件不相互独立。

    2、条件概率

    条件概率是指事件A在另外一个事件B已经发生条件下的发生概率。

    条件概率表示为:P(A|B),读作“在B的条件下A的概率”。若只有两个事件A,B,那么,

                                                               

               由上面的公式同样可得到如下公式,将如下公式进行转换则也可得出贝叶斯定理:

                                                        

               总的来说,对于贝叶斯定理可通过画图的形式直观地通过面积占比得出,也可通过严格的条件概率定理转换而来。 

    三、贝叶斯定理的例子说明

    •    注:例子引自李烨老师机器学习极简入门第十二课,付费课程链接

    例子1

    我们假设:目前的全集是一个小学的小学一年级学生。

    这个小学一年级一共100人,其中有男生30人。

    穿白袜子的人数一共有20个,这20个人里面,有5个是男生。

    那么请问,男生里面穿白袜子的人的出现概率为多少?

    这不是废话嘛,一共30个男生,5个穿白袜子,出现概率是5/30=1/6啊。用得着贝叶斯公式吗?

    如果我已经把人数都告诉你了,当然没必要算什么先后验概率。

    但是我先不告诉你人数,我只告诉你:

    (下面用 A 指代“穿白袜子”,B 指代“是男生”)

    这个小学一年级学生里面,男生的出现概率是 0.3 —— P(B);

    穿白袜子的人的出现概率是0.2 —— P(A);

    穿白袜子的人是男生这件事出现的概率是0.25 —— P(B|A)。

    请问你,一个人是男生又穿白袜子的出现概率 —— P(A|B)是多少?

    这个时候就该贝叶斯公式出场啦:

    P(A|B)=P(B|A)P(A)/P(B) ==> P(A|B) = 0.25 * 0.2 / 0.3 = 1/6

    另一个简单的例子

    如果你问我,明明人数都知道了,为什么还要绕个弯算概率?那么再来看另一个例子。

    例子2

    把场景从一个小学的一年级转换为某个大饭店的门口,我们根据以往数据,可以计算出:

    所有来吃饭的所有客人中,会有10%的人喝酒 —— P(B),

    所有客人中,会有20%的人驾车前来—— P(A),

    开车来的客人中,会有5%喝酒 —— P(B|A)。

    那么请问,在这个饭店喝过酒的人里,仍然会开车的比例—— P(A|B)是多少?

    P(A|B)=P(B|A)P(A)/P(B) ==> P(A|B) = 5% * 20% / 10% = 10%

    一般化的贝叶斯公式

    更一般化的情况,假设事件 A 本身又包含多种可能性,即 A 是一个集合:A(_{1},_{2},_{3},...,_{n}),那么对于集合中任意的 A_{i},贝叶斯定理可用下式表示:

                                                                  

    这和之前的简化版公式:

                                                                           

    在使用上有什么区别呢?

    我们还是来看一个例子

    例子3

    某 AI 公司招聘工程师,来了8名应聘者,这8个人里,有5个人是985院校毕业的,另外3人不是。

    面试官拿出一道算法题准备考察他们。根据以前的面试经验,面试官知道:985毕业生做对这道题的概率是80%,非985毕业生做对率只有30%。

    现在,面试管从8个人里随手指了一个人——小甲,让 TA 出来做题。结果小甲做对了,那么请问,小甲是985院校毕业的概率是多大?

    •    笔者解决该题的思路:首先理清该题求小甲所毕业院校实际上是根据输入的对象特征(题目做对或做错为对象特征),以及不同特征所对应的分类(对象类别:毕业于985,非毕业于985),还有目前已知的类别对应的特征概率(先验概率),求输入的对象所对应的类别。按上述思路将已知条件转换为具体数值,代入一般化的贝叶斯公式则可求出输入对象所对应类别的概率情况,求入的各个类别占比之和为1。

    具体解决方法:

    现在我们来看,这道题里面的小甲的毕业院校有两种可能,也就是 A={A1,A2},

    A1 —— 被选中的人是985毕业的;

    A2 —— 被选中的人不是985毕业的。

    B —— 被选中的人做对了面试题

    P(A1) = 5/8

    P(A2) = 3/8

    P(B|A1) = 80% = 0.8(985毕业生做对改道面试题的先验概率)

    P(B|A2) = 30% = 0.3(非985毕业生做对改道面试题的先验概率)

    因此:

    所以,小甲是985毕业的概率是81.6%,非毕业于985为:1-0.8163

    • 注意:上面的几个例子中,先验、后验事件的概率都是离散的。
    •  事实上贝叶斯定理一样可以应用于连续概率的情况,假设上面的具体事件的概率不是一个确定值,而是一个分布函数,也是一样的。只不过 sum 部分变为了对应函数的积分而已。
    • 连续概率的贝叶斯定理的形式为(下面所说的 A 和 B 对应之前贝叶斯公式中的的 A 与 B):

                                                              

        其中,f(x|y) 是给定 B=y 时,A 的后验分布;对应的 f(y|x) 是给定 A=x 时,B 的后验分布; f(x) 则是 A 的先验分布概率函数。

    为了方便起见,这里的 f 在这些专有名词中代表不同的函数。

     

    四、朴素贝叶斯分类器

    朴素贝叶斯”(Naïve Bayes)既可以是一种算法——朴素贝叶斯算法,也可以是一种模型——朴素贝叶斯分类模型(分类器)。

         简洁版的贝叶斯定理:

                                                                 

    •      在之前的几个例子中,为了便于理解,当 B 作为 A 的条件出现时,我们假定它总共只有一个特征。
    •      但在实际应用中,很少有一件事只受一个特征影响的情况,往往影响一件事的因素有多个。假设,影响 B 的因素有 n 个,分别是 b1,b2,…,bn。

    则 P(A|B) 可以写为:

                                                         

    • A 的先验概率 P(A) 和多个因素的联合概率 P(b1,b2,…,bn) 都是可以单独计算的,与 A 和 bi 之间的关系无关,因此这两项都可以被看作常数。
    • 对于求解 P(A|b1,b2,…,bn),最关键的是 P(b1,b2,…,bn|A)。根据链式法则,可得:

                                       

    • 上面的求解过程,看起来好复杂,但是,如果从 b1 到 bn这些特征之间,在概率分布上是条件独立的,也就是说每个特征 bi与其他特征都不相关。如下图所示:

                                                

    • 那么,当 i≠j 时,有 P(bi|A,bj)=P(bi|A) —— 无关条件被排除到条件概率之外,这一点由上图可以很直观地看出。因此,当 b1,b2,…,bn 中每个特征与其他 n-1 个特征都不相关时,就有:

                                       

    • 注:\prod是希腊字母,即π的大写形式,在数学中表示求积运算或直积运算,形式上类似于\sum
    • Z 对应 P(_{b1},_{b2},_{b3},...,_{bn})

    一款极简单的朴素贝叶斯分类器

    上式中的 b1 到 bn 是特征(Feature),而 A 则是最终的类别(Class),所以,我们换一个写法:

                                            

    这个公式也就是我们的朴素贝叶斯分类器的模型函数

    • :由该公式可知,当所求的分类不同时,该式 Z 对应 P(b1,b2,…,bn)永远都是固定不变的,因此当计算对象所属类别时可直接省去该公式中的分母部分。

    它用来做预测时是这样的:       

    • 有一个朴素贝叶斯分类模型(器),它能够区分出 k 个类 (c1,c2,…,ck), 用来分类的特征有 n 个:(F1,F2,…,Fn)。

    • 现在有个样本 s,我们要用 NB 分类器对它做预测,则需要先提取出这个样本的所有特征值 F1到 Fn,将其带入到下式(因为对应不同分类的分母为固定值,所以公式可简化为如下所示)中进行 k 次运算:

                                               

    • 然后比较这 k 次的结果,选出使得运算结果达到最大值的那个 cj(j=1,2,…,k)—— 这个 cj 对应的类别就是预测值。求上式的最大值也可以用为如下公式表示:                                                                                                                                                                                                             注:argmax是一种函数,函数y=f(x),x0= argmax(f(x)) 的意思就是参数x0满足f(x0)为f(x)的最大值;                                                                               

      设我们当前有一个模型,总共只有两个类别:c1 和 c2;有三个 Feature:F1,F2和F3。F1 有两种可能性取值:f11 和 f12;F2 有三种可能性取值:f21,f22,f23;F3 也有两种可能性取值:f31,f32。

    那么对于这个模型,我们要做得,就是通过训练过程,获得下面这些值:

                                                                                    

                                                                                    

    把这些概率值都算出来以后,就可以用来做预测了。

    上面那些先验概率和条件概率如何得到呢?通过在训练样本中间做统计,就可以直接获得了!

    现在让我们把上面那个抽象的例子具象化,来看一个新的例子,例子4

    假设有一家小公司招收机器学习工程师,为了在更广泛的范围内筛选人才,他们写了一些爬虫,去各个招聘平台、职场社交平台爬取简历,然后又写了一个简单的分类器,来筛选他们感兴趣的候选人。

    这个筛选分类器是朴素贝叶斯分类器,训练数据是现在公司里的机器学习工程师和之前来面试过这一职位,没有被录取的人员的简历。

    全部数据集如下图所示:

                                            enter image description here

    对应符号表达含义:

                                                       

    注:符号“”表示成正比例,值得注意的是P(C=c1|x)与P(C=c2|x)这两个值之和不为1是因为这里的计算并没有带入分母,这也是主里引入正比符号的原因,但是不引入分母对于实际分类的对比是没有影响的。

    体现的思路是:

        在训练样本的基础上做一系列概率运算,然后用这些算出来的概率按朴素贝叶斯公式“拼装”成分类模型——这就成了朴素贝叶斯分类器。

    频率 VS 概率

    这也太简单了吧

    朴素贝叶斯分类器这个模型的训练过程都不需要先从模型函数推导目标函数,再优化目标函数求 Cost 最小的解吗?朴素贝叶斯公式就是朴素贝叶斯分类器的训练算法啦??

    上述例子之所以这样简单,是因为我们简单地将频率当成了概率

    但在现实应用中,这种方法往往不可行,因为这种方法实际上默认了“未被观测到”的就是“出现概率为0”的。这样做显然是不合理的。

    比如:上面例子中,由于样本量太小,“博士”候选人只有两位,而且全部被录取,因此对于“未被录用”的情况而言,学历是博士的条件概率就变成了0。这种情况使得学历是否是博士成了唯一决定因素,显然不合理。

    虽然我们可以靠做一些简单的变换——比如加一平滑法(就是把概率计算为:对应类别样本中该特征值出现次数 + 1 /对应类别样本总数)——来规避除以0的情况,但是这样做的“准确性”仍然非常不可靠。

    总结

             全文主要是简单描述了贝叶斯的基本思想以及推导出朴素贝叶斯分类器的基本公式如下。对于更加深入的部分详见下一篇博文。

                             


    :本文主要是参考李烨老师的博客以及个人的理解整理出来的,目的是为了后期以便学习与回顾,参考文献如下

    1、李烨老师的机器学习极简入门(付费)

    2、贝叶斯定理推导(Bayes' Theorem Induction)

    3、带你搞懂朴素贝叶斯分类算法

    4、全概率公式、贝叶斯公式推导过程

    5、概率论的链式法则

    展开全文
  • 朴素贝叶斯、贝叶斯网络分类器

    千次阅读 2019-05-16 09:34:28
    目录 贝叶斯定理 贝叶斯分类 朴素贝叶斯分类器 贝叶斯网络 VS 朴素贝叶斯 贝叶斯网络 条件概率表集合 贝...
  • 朴素贝叶斯算法

    千次阅读 2019-07-07 22:32:48
    贝叶斯算法概述 贝叶斯算法的提出: 贝叶斯定理 贝叶斯推导实例 男生、女生穿长裤 拼写纠错实例 贝叶斯算法概述 正向概率:假设袋子里面有N个白球,M个黑球,你伸手进去摸出黑球的概率...
  • 朴素贝叶斯分类(Nave Bayes)

    万次阅读 多人点赞 2017-12-27 16:25:59
    一、条件概率(Conditional probability) 条件概率是指事件A在另外一个事件B已经发生条件下的发生概率,记P(A|B)。举例说明: ...上图左边为一个布袋,里边装有5个球,其中2个蓝色球,3个红色球。...
  • 深入理解朴素贝叶斯(Naive Bayes)

    万次阅读 多人点赞 2020-07-23 11:45:58
    朴素贝叶斯是经典的机器学习算法之一,也是为数不多的基于概率论的分类算法。朴素贝叶斯原理简单,也很容易实现,多用于文本分类,比如垃圾邮件过滤。该算法虽然简单,但是由于笔者不常用,总是看过即忘,这是写这篇...
  • 带你彻彻底底搞懂朴素贝叶斯公式

    万次阅读 多人点赞 2018-03-13 21:27:58
    本文参考了该博客的实例,但该博客中的朴素贝叶斯公式计算错误,评论中的也不对,所以,重新写一篇。一. 朴素贝叶斯 朴素贝叶斯中的朴素一词的来源就是假设各特征之间相互独立。这一假设使得朴素贝叶斯算法变得简单...
  • 朴素贝叶斯算法优缺点

    万次阅读 2018-07-14 00:06:07
    朴素贝叶斯的主要优点有:1)朴素贝叶斯模型有稳定的分类效率。2)对小规模的数据表现很好,能处理多分类任务,适合增量式训练,尤其是数据量超出内存时,可以一批批的去增量训练。3)对缺失数据不太敏感,算法也...
  • 贝叶斯分类器理论知识。包括贝叶斯决策论,朴素贝叶斯分类器,半朴素贝叶斯分类器。
  • 朴素贝叶斯中朴素是什么含义?

    千次阅读 2018-11-15 10:01:16
    朴素贝叶斯中的“朴素”二字突出了这个算法的简易性。朴素贝叶斯的简易性表现该算法基于一个很朴素的假设:所有的变量都是相互独立的,假设各特征之间相互独立,各特征属性是条件独立的。   就这一句话就理解了吧...
  • 朴素贝叶斯算法的参数的最大似然估计 设输入向量为。我们假定输入特征是离散的、二值化的变量,即。对每一个训练样例,输出对象是0或者1,即。我们的模型由 参数化。 我们把建模成伯努利分布,所以这是...
  • 朴素贝叶斯为什么朴素?

    千次阅读 2018-04-07 17:02:11
    朴素贝叶斯(naive Bayes classifiers)是一种分类器,在机器学习中有着广泛的应用。相信很多人知道贝叶斯定理,即 所以,当我们有一组事件,我们想通过这组事件去估计一个事件C发生的概率,比如我们想估计水果的...
  • 基于周志华《机器学习》,通俗讲解半朴素贝叶斯分类器
  • 数据分析04-朴素贝叶斯

    万次阅读 2019-11-17 10:16:26
    标签(空格分隔): 数据分析 朴素贝叶斯分类最适合的场景就是文本分类、情感分析和垃圾邮件识别。...sklearn 的全称叫 Scikit-learn,它给我们提供了 3 个朴素贝叶斯分类算法,分别是高斯朴素贝叶斯(Ga...
  • 朴素贝叶斯法是基于贝叶斯定理与特征条件独立假设的分类方法。简单来说,朴素贝叶斯分类器假设样本每个特征与其他特征都不相关。举个例子,如果一种水果具有红,圆,直径大概4英寸等特征,该水果可以被判定为是苹果...
  • 为什么朴素贝叶斯如此“朴素”?

    千次阅读 2017-10-14 11:25:09
    为什么朴素贝叶斯如此“朴素”?​ 贝叶斯算法、朴素贝叶斯
1 2 3 4 5 ... 20
收藏数 34,160
精华内容 13,664
关键字:

朴素贝叶斯