精华内容
下载资源
问答
  • 多项式朴素贝叶斯也是多用于文本处理,其原理和计算的流程和伯努利朴素贝叶斯基本一致,唯一的区别在于单词的计数方式,由《伯努利朴素贝叶斯》一文可知,在文本处理的环节中,我们将单词是否出现在词组作为特征,但...
  • 伯努利朴素贝叶斯分类器主要用于文本分类,下面我们以一个具体的例子,来讲述下伯努利朴素贝叶斯的原理和实现逻辑。 具体例子: 已知我们有八个句子以及每个句子对应的类别,即中性或侮辱性。那么再给出一个句子,...
  • 朴素贝叶斯 分类算法数据集文本挖掘(Text Mining,从文字中获取信息)是一个比较宽泛的概念,这一技术在如今每天都有海量文本数据生成的时代越来越受到关注。目前,在机器学习模型的帮助下,包括情绪分析,文件分类...
  • 朴素贝叶斯分类模型(一)

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

    目录

    前言

    一、简述贝叶斯定理

    二、贝叶斯定理的推导

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

    四、朴素贝叶斯分类器

    总结


    前言

      什么是分类算法

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

       朴素贝叶斯分类算法

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

         朴素贝叶斯(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、概率论的链式法则

    展开全文
  • 简单朴素贝叶斯分类器的思想与算法分析 在数据仓库和数据挖掘应用中 分类是一种非常重要的方法. 分类的概念是在已有数据 的基础上学会一个分类函数或构造出一个分类模型 即我们通常所说的分类器 (Classifier) .该 ...
  • 朴素贝叶斯(二)文本分类朴素贝叶斯的一般流程用python进行文本分类准备数据:从文本中构建词向量训练算法:从词向量计算概率测试算法:朴素贝叶斯分类函数文档词袋模型 朴素贝叶斯的一般流程 (1)收集数据:任何...
  • 主要为大家详细介绍了python实现基于朴素贝叶斯的垃圾分类算法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • 针对朴素贝叶斯分类器在分类过程中不同类别的同一特征量之间由于存在相似性,易导致误分类的现象,提出基于引力模型朴素贝叶斯分类算法。提出以引力公式中距离变量的平方作为相似距离,应用引力模型来刻画特征与其...
  • 本节主要介绍数据挖掘中常见的分类方法决策树和朴素贝叶斯算法。 决策树算法 决策树(Decision Tree,DT)分类法是一个简单且广泛使用分类技术。 决策树是一个树状预测模型,它是由结点和有向边组成的层次结构。...
  • 朴素贝叶斯分类是一种依据统计理论而实现的一种分类方式. 观察一组数据: 天气情况 穿衣风格 约女朋友 ==> 心情 0(晴天) 0(休闲) 0(约了) ==> 0(高兴) 0 1(风骚) 1(没约) ==> 0 1(多云) 1 0 ==&...

    本文所用文件的链接

    链接:https://pan.baidu.com/s/1RWNVHuXMQleOrEi5vig_bQ
    提取码:p57s

    朴素贝叶斯分类

    朴素贝叶斯分类是一种依据统计理论而实现的一种分类方式. 观察一组数据:

    天气情况穿衣风格约女朋友==>心情
    0(晴天)0(休闲)0(约了)==>0(高兴)
    01(风骚)1(没约)==>0
    1(多云)10==>0
    02(破旧)1==>1(郁闷)
    2(下雨)20==>0
    010==>?

    通过上述训练样本如何预测:010的心情? 可以依照决策树的方式找相似输入预测输出. 但是如果在样本空间中没有完全匹配的相似样本该如何预测?

    贝叶斯公式:
    P ( A , B ) = P ( A ) P ( B ∣ A ) = P ( B ) P ( A ∣ B ) ⇓ ⇓ ⇓ P ( A ∣ B ) = P ( A ) P ( B ∣ A ) P ( B ) P(A,B) = P(A)P(B|A) = P(B)P(A|B) \\ \Downarrow \Downarrow \Downarrow \\ P(A|B) = \frac{P(A)P(B|A)}{P(B)} P(A,B)=P(A)P(BA)=P(B)P(AB)P(AB)=P(B)P(A)P(BA)
    例如:

    假设一个学校中有60%男生和40%女生. 女生穿裤子的人数和穿裙子的人数相等. 所有男生都穿裤子. 一人在远处随机看到了一个穿裤子的学生, 那么这个学生是女生的概率是多少?

    P(女) = 0.4
    P(裤子|女) = 0.5
    P(裤子) = 0.8
    P(女|裤子) = P(女)*P(裤子|女)/P(裤子)
              = 0.4 * 0.5 / 0.8 = 0.25
    

    根据贝叶斯定理, 如何预测: 晴天并且休闲并且没约并且高兴的概率?

    P(晴天,休闲,没约,高兴)
    P(晴天|休闲,没约,高兴)P(休闲,没约,高兴)
    P(晴天|休闲,没约,高兴)P(休闲|没约,高兴)P(没约,高兴)
    P(晴天|休闲,没约,高兴)P(休闲|没约,高兴)P(没约|高兴)P(高兴)
    (朴素: 条件独立, 特征值之间没有任何关系)
    P(晴天|高兴)P(休闲|高兴)P(没约|高兴)P(高兴)
    

    朴素贝叶斯相关API:

    import sklearn.naive_bayes as nb
    # 构建高斯朴素贝叶斯
    model = nb.GaussianNB()
    model.fit(x, y)
    pred_test_y = model.predict(test_x)
    

    案例: multiple1.txt

    """
    朴素贝叶斯分类
    """
    import numpy as np
    import sklearn.naive_bayes as nb
    import matplotlib.pyplot as mp
    
    data = np.loadtxt('../ml_data/multiple1.txt', 
    	unpack=False, delimiter=',')
    print(data.shape, data.dtype)
    # 获取输入与输出
    x = np.array(data[:, :-1])
    y = np.array(data[:, -1])
    
    # 绘制这些点, 点的颜色即是点的类别
    mp.figure('Naive Bayes', facecolor='lightgray')
    mp.title('Naive Bayes', fontsize=16)
    mp.xlabel('X', fontsize=14)
    mp.ylabel('Y', fontsize=14)
    mp.tick_params(labelsize=10)
    # 通过样本数据,训练朴素贝叶斯分类模型
    model = nb.GaussianNB()
    model.fit(x, y)
    # 绘制分类边界线
    l, r = x[:, 0].min()-1, x[:, 0].max()+1
    b, t = x[:, 1].min()-1, x[:, 1].max()+1
    n = 500
    grid_x, grid_y = np.meshgrid(
    	np.linspace(l, r, n),
    	np.linspace(b, t, n))
    test_x = np.column_stack(
    	(grid_x.ravel(), grid_y.ravel()))
    pred_test_y = model.predict(test_x)
    grid_z = pred_test_y.reshape(grid_x.shape)
    mp.pcolormesh(grid_x,grid_y,grid_z,cmap='gray')
    
    mp.scatter(x[:,0], x[:,1], s=60, c=y, 
    	cmap='jet', label='Points')
    mp.legend()
    mp.show()
    

    在这里插入图片描述

    展开全文
  • 朴素贝叶斯文本分类的Python实现代码
  • 朴素贝叶斯py源代码

    2020-05-22 13:02:21
    和决策树模型相比,朴素贝叶斯分类器(Naive Bayes Classifier 或 NBC)发源于古典数学理论,有着坚实的数学基础,以及稳定的分类效率。同时,NBC模型所需估计的参数很少,对缺失数据不太敏感,算法也比较简单。理论上...
  • 朴素贝叶模型原理1.1朴素贝叶斯模型:将频率当成概率(不可靠)1.2 朴素贝叶斯模型:条件概率的参数估计2. 朴素贝叶斯的目标函数总结: 0. 概念/术语 贝叶斯公式 贝叶斯定理:在 B 出现的前提下 A 出现的概率,等于...

    贝叶斯分分类器是一种生成模型,可以处理多分类问题,是一种非线性模型。

    0. 本质和概述

    0.1 本质

    核心:将样本判定为后验概率最大的类

    朴素贝叶斯算法,是一种通过根据新样本的已有特征在数据集中的条件概率(后验概率)来判断新样本所属类别的算法,其将样本判定为后验概率最大的类

    之所以称之为“朴素”,因为它假设

    ① 每个特征之间相互独立
    ② 每个特征同等重要。

    注意:因为各个属性间相互独立,所以类条件概率等于每个属性的类条件概率的乘积
    在这里插入图片描述

    0.2 贝叶斯公式

    • 贝叶斯定理
      在 B 出现的前提下 A 出现的概率,等于 A 和 B 都出现的概率除以 B 出现的概率。
      在这里插入图片描述

    我们希望确定一个具有某些特征的样本属于某类标签的概率,通常记为 P (L |特征 )。贝叶斯定理告诉我们,可以直接用下面的公式计算这个概率:
    在这里插入图片描述
    (L 为某个标签)

    • 直观理解
      打个最简单的比方来理解贝叶斯公式的作用——为什么判断一个新东西属于某种类别(条件概率)可以通过各种类别本身的特性(类条件概率)来完成:

      问题:判断一个金发碧眼高鼻梁的美女来自日本还是俄罗斯。

      显而易见,因为俄罗斯这个分类下的人种数据,绝大多数都是由“金发”、“碧眼”和“高鼻梁”特征的人构成的,而日本却不是。只需要根据先验知识,就可以轻易得出结论,这就是类条件概率的牛B之处。当然,前提是“独立同分布假设”,这是一切的前提。

    怎么理解这句话,可以返回去看看贝叶斯公式能如何起作用。

    1. 朴素贝叶模型原理

    1.1朴素贝叶斯模型:将频率当成概率(不可靠)

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

    朴素贝叶斯算法可以直接利用贝叶斯定理来实现。
    在这里插入图片描述
    在实际应用中,很少有一件事只受一个特征影响的情况,往往影响一件事的因素有多个。假设,影响 B 的因素有 n 个,分别是 b1,b2,…,bn

    则 P(A|B) 可以写为:
    在这里插入图片描述
    求解该式子,最关键的是分子 P(b1,b2,…,bn|A),根据链式法则,分子有:
    在这里插入图片描述
    上面的求解过程,看起来好复杂,但是,如果从 b1 到 bn 这些特征之间,在概率分布上是条件独立的,也就是说每个特征 bi 与其他特征都不相关。

    那么,当 i≠j 时,有 P(bi|A,bj)=P(bi|A) —— 无关条件被排除到条件概率之外。因此,当 b1,b2,…,bn中每个特征与其他 n-1 个特征都不相关时,就有:
    在这里插入图片描述
    注意:此处的 Z 对应 P( b1,b2,…,bn)。

    上式中的 b1 到 bn 是特征(Feature),而 A 则是最终的类别(Class),所以,我们换一个写法即可得到朴素贝斯分类器的模型函数:

    在这里插入图片描述

    1.2 朴素贝叶斯模型:条件概率的参数估计

    • 贝叶斯公式
      在这里插入图片描述

    • 一般化的贝叶斯公式

      更一般化的情况,假设事件 A 本身又包含多种可能性,即 A 是一个集合:A={A1,A2,…,An},
      那么对于集合中任意的 Ai,贝叶斯定理可用下式表示:
      在这里插入图片描述
      贝叶斯公式是要找出组成发生事件B的各个样本空间,然后预测事件B的发生来自于Ai的概率。

      其中 P(Ai) 称为原因的先验概率。它是在不知道事件B是否发生的情况下获取的概率。
      而 P(Ai | B) 是原因的后验概率。它是在知道了事件B发生的条件下,有了这个进一步的信息后,判断原因 Ai 发生的概率有多大。

      一般地,如果对样本空间做了大于1的划分,即:
      在这里插入图片描述
      不难推断出:
      在这里插入图片描述
      也就是说在获取了进一步的信息B后,原因的后验概率一般大于原因的先验概率

    P(classification | data) = P ( c l a s s i f i c a t i o n ) ∗ P ( d a t a ∣ c l a s s i f i c a t i o n ) P ( d a t a ) \frac{P(classification) * P(data | classification)}{P(data)} P(data)P(classification)P(dataclassification)

    注:在贝叶斯公式中,要求后验概率 P(classification | data) ,利用贝叶斯公式将其其转化为求解 :
    P(classification) * P(data | classification) / P(data)

    这次求解模式在机器学习中被称为:生成式(generative models)模式

    P(data) 是与类标记无关的量,可以看做是一个常数;

    P(classification) 表达了各类样本所占的比例,根据大数定律,当训练集包含了充足的独立同分布样本时,P(classification)可以通过各类样本出现的频率来进行估计。

    关键就是求解 P(data | classification) 即 data相对于classification的概率。

    2. 朴素贝叶斯的目标函数

    • 类的后验概率 P(c | x)
      也就是我们需要求解的问题
      在这里插入图片描述

    • 类条件概率 P(x | c)

      类条件概率,它等于在训练集中属于类别 c 的所有样本中,所有属性组合的样本出现的概率

      在类所属的特征间相互独立的前提假定下有:

      在这里插入图片描述
      其中,d是样本的所有属性个数。
      这个意思是说,因为各个属性间相互独立,所以类条件概率等于每个属性的类条件概率的乘积

    因此,联合上面两个式子,可以得到如下式子:
    在这里插入图片描述

    • 目标函数
      由于对所有类别来说,P(x)是相同的,因此贝叶斯分类器的目标函数进一步化简为如下:
      在这里插入图片描述
      其中 c 为所有类别中的每一个,称上面式子为朴素贝叶斯分类器的目标函数

    明显地,朴素贝叶斯分类器的训练学习的过程便是基于训练数据,求得类的先验概率P©,并且为每个属性求得类条件概率,然后相乘取最大值的过程。

    3. 代码

    一种快速创建简易模型的方法就是假设数据服从高斯分布,且变量无协方差(no covariance,指线性无关)。只要找出每个标签的所有样本点均值和标准差,再定义一个高斯分布,就可以拟合模型了。

    注:朴素贝叶斯常用的三个模型有:
    高斯模型:处理特征是连续型变量的情况
    多项式模型:最常见,要求特征是离散数据
    伯努利模型:要求特征是离散的,且为布尔类型,即true和false,或者1和0

    • 构造数据
    from sklearn.datasets import make_blobs
    X, y = make_blobs(100, 2, centers=2, random_state=2, cluster_std=1.5)
    plt.scatter(X[:, 0], X[:, 1], c=y, s=50, cmap='RdBu');
    

    在这里插入图片描述

    • 模型拟合
    from sklearn.naive_bayes import GaussianNB
    model = GaussianNB()
    model.fit(X, y)
    
    • 新数据
    # 新数据
    
    rng = np.random.RandomState(0)
    Xnew = [-6, -14] + [14, 18] * rng.rand(2000, 2)
    ynew = model.predict(Xnew)
    
    • 可视化并查看决策边界
    # 可视化新数据,查看决策边界的位置
    plt.scatter(X[:, 0], X[:, 1], c=y, s=50, cmap='RdBu')
    lim = plt.axis()
    plt.scatter(Xnew[:, 0], Xnew[:, 1], c=ynew, s=20, cmap='RdBu', alpha=0.1)
    plt.axis(lim);
    

    在这里插入图片描述

    # 可以用 predict_proba 方法计算样本属于某个标签的概率
    yprob = model.predict_proba(Xnew)
    yprob[-8:].round(2)
    
    # 这个数组分别给出了前两个标签的后验概率
    

    4. 总结

    1. 贝叶斯公式——模型构造
    2. 大数定律——估计 P(label)
    3. 极大似然估计——求解 P(feature | label)
    4. 概率估计的平滑处理——
      4.1 加一平滑法
      把概率计算为对应类别样本中该特征值出现次数 + 1 /对应类别样本总数,来规避除以0的情况
      4.2 拉普拉斯修正

    之所以称为“朴素”或“朴素贝叶斯”,是因为如果对每种标签的生成模型进行非常简单的假设,就能找到每种类型生成模型的近似解,然后就可以使用贝叶斯分类。不同类型的朴素贝叶斯分类器是由对数据的不同假设决定的。

    参考

    1. 说说贝叶斯分类
    2. 朴素贝叶斯分类器:例子解释
    3. 朴素贝叶斯分类:拉普拉斯修正
    4. 朴素贝叶斯分类器——从贝叶斯定理到分类
    5. 朴素贝叶斯分类器——条件概率的参数估计
    6. 一句话+一张图说清楚朴素贝叶斯算法
    展开全文
  • 朴素贝叶斯分类模型

    2021-11-10 15:54:33
    1.朴素贝叶斯分类器原理 2.条件概率 三、补充知识 1.学习器、模型、分类器 四、总结 一、背景知识 1.朴素贝叶斯分类器原理 (1)基于“贝叶斯理论”和特征“条件独立”的假设,的一种分类算法。 ...

    目录

     

    一、背景知识

    1.朴素贝叶斯分类器原理

    2.条件概率

    三、补充知识 

    1.学习器、模型、分类器

    四、总结

    一、背景知识

    1.朴素贝叶斯分类器原理

    (1)基于“贝叶斯理论”和特征“条件独立”的假设,的一种分类算法。

    (2)流程:

    ①(因为特征条件独立)假设学习数据的概率分布服从正态分布  why??

    ②基于此正态分布,对于给定的特征数据x,使用贝叶斯定理算出label y

    (3)此算法实现简单、预测效率高、是常用的分类算法

    2.条件概率

    (1)定义:

    概率指的是某一事件A发生的可能性,表示为P(A)。而条件概率指的是某一事件A已经发生了条件下,另一事件B发生的可能性,表示为P(B|A)

    (2)计算:

    A,B是两个事件,且P(A)>0,则P(B|A)=P(AB)/P(A)为B的条件概率其中P(AB)表示事件A和事件B同时发生的概率,只有A和B无条件独立时才为P(A)*P(B),但此时只是条件独立

    3.乘法定理

    (1)定义

    将条件概率的公式两边同时乘以P(A),就变成了乘法定理,即P(AB)=P(B|A)*P(A)=P(A|B)*P(B)

    这给出了,当A和B为两个事件(不知道是否独立)时,计算A,B同时发生的概率的方式。

    且表明,其与顺序无关。

    4.全概率公式

    (1)定义

    当为了达到某种目的,但是达到目的有很多种方式,如果想知道通过所有方式能够达到目的的概率是多少的话,就需要用到全概率公式

    (2)计算

     事件C即为你想达到的目的,B为各种你可以使用的方法,但是你只能选择一个。

    即:P(C)=P(B1C)+P(B2C)+...

    5.贝叶斯公式

    当已知引发事件发生的各种原因的概率,想要算该事件发生的概率时,我们可以用全概率公式。但如果现在反过来,已知事件已经发生了,但想要计算引发该事件的各种原因的概率时,我们就需要用到贝叶斯公式了。

    其就是使用了乘法定理+调换了顺序+用全概率公式展开:

     

    三、补充知识

    1.模型的别称叫作“学习器”,模型指:通过某些算法,对一些训练集进行学习后形成的模型,可以对未来进行预测判断。 “学习器”顾名思义,通过某种方法(即:算法)学习了一些数据,而形成了自己的规律(判断准则)。

    分类器即为分类模型。

    2.特征

    样本属性

    3.条件独立

    定义:某些相互影响的事件可以在某些条件的成立下相互独立。

    转载自其他博主:

    条件有时为不独立的事件之间带来独立(gain independence),有时也会把本来独立的事件,因为此条件的存在,而失去独立性(lose independence),如下(本身,P(XY)=P(X)P(Y)P(XY)=P(X)P(Y),二者独立);

    P(X,Y∣∣C)≠P(X|C)P(Y|C)
    P(X,Y|C)≠P(X|C)P(Y|C)
    事件独立时,联合概率等于概率的乘积。这是一个非常好的数学性质,然而不幸的是,无条件的独立是十分稀少的,因为大部分情况下,事件之间都是互相影响的。然而,通常这种影响又往往依赖于其他变量而不是直接产生。由此我们引入条件独立(conditional independent,CI)。给定 ZZ 下,XX 与 YY 是条件独立的当且仅当:

    X⊥Y|Z⇔P(X,Y|Z)=P(X|Z)⋅P(Y|Z)
    X⊥Y|Z⇔P(X,Y|Z)=P(X|Z)⋅P(Y|Z)
    也即 XX 与 YY 的依赖关系借由 ZZ 产生。

    例如,定义如下事件:

    XX:明天下雨;
    YY:今天的地面是湿的;
    ZZ:今天是否下雨;
    ZZ 事件的成立,对 XX 和 YY 均有影响,然而,在 ZZ 事件成立的前提下,今天的地面情况对明天是否下雨没有影响。
    ————————————————
    版权声明:本文为CSDN博主「五道口纳什」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/lanchunhui/article/details/53696550

    4.贝叶斯理论

    四、总结

     条件概率:B在A已经完成的条件下的概率 P(B|A)=P(AB)/P(A)

    乘法定理:A、B在不独立的情况下(独立时也可以用),同时发生的概率P(AB)=P(B|A)*P(A)

    全概率公式:当已知引发事件发生的各种原因的概率,想要算该事件发生的概率时,我们可以用全概率公式

    贝叶斯公式:已知事件已经发生了,但想要计算引发该事件的各种原因的概率时

    展开全文
  • 1、应用场景 1.1 垃圾邮件分类 2、概率基础 概率定义为一件事情发生的可能性 问题: 1、女神喜欢的概率? 2、职业是程序员并且体型匀称的概率? 3、在女神喜欢的条件下,职业是程序员的概率? 4、在女神喜欢的...
  • 3-estimate_:估计给定数据的模型4-classify_:根据模型和数据进行分类5-测试:使用 alpha=1:0.1:1000 测试 Naive 分类器并在可视化文件夹中打印一个名为 (accuracy 1-1000.pdf) 的图6- InspectTheModel:尝试衡量...
  • 朴素贝叶斯高斯模型“Why is Google censuring me?!” Claire asked (true story). Sure, she’s always been a prolific emailer, but she is no scammer — and she assures me her days as a Nigerian prince are...
  • 朴素贝叶斯分类器训练过程分析

    千次阅读 2018-05-25 12:30:51
    步骤三:朴素贝叶斯分类训练过程 1.将训练数据转化为特征值列表表示   2.输入条件  (1.)trainMatrix  (2.)trainCategory: [0, 1, 0, 1, 0, 1] 是否是不当言论 3.开始训练(训练目的,今后给出新的文档判断...
  • 通过将使用随机特征的 boostrapped 朴素贝叶斯分类器组合成单个集成,可以提高朴素贝叶斯分类器的分类精度和概率估计的精度。 我对离散朴素贝叶斯集合的处理方法严格遵循 Breiman 随机森林 [1] 的一般思想。 每个基...
  • 朴素贝叶斯 文本分类

    热门讨论 2014-06-28 17:59:30
    朴素贝叶斯 文本分类,注释详细,一看就明白,JAVA实现。下载导入即可使用
  • 最近学习了一下朴素贝叶斯,看了相关文档等资料,在自己理解的基础上整理如下笔记。
  • 朴素贝叶斯分类算法

    千次阅读 2019-09-21 17:44:06
    版权声明:本文为CSDN博主「JensLee」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。 ... 贝叶斯分类是一类分类算法的总称,这类算法均以...而朴素贝叶斯分类是贝叶斯分类中最简单,也...
  • 朴素贝叶斯分类使用案例

    千次阅读 2018-10-24 17:07:40
    1,朴素贝叶斯公式:定义 1.1 全概率公式: 1.2 贝叶斯公式: 设 x= {a1, a2, a3…, am } 为一个待分类项,而每个a为x的一个特征属性。 有类别集合:C ={ y1, y2, y3 …, yn } 计算一个概率集合U : P(y1|x), P...
  • 以贝叶斯理论为基础的朴素贝叶斯分类器目前任然是十大流行的数据挖掘算法之一,不过这么厉害的一个理论,他的创造者竟然是英国的一位神父,真的令人有一点点匪夷所思。 贝叶斯思想简介 贝叶斯学派和传统的频率派是...
  • 在印度,第四大主要疾病之一是甲状腺疾病,它对社会构成严重威胁,因为家庭人口,气候,城市化,食物的变化增加了甲状腺激素模拟变化... 本文使用J48和朴素贝叶斯分类技术进行比较,以基于效率和准确性来充分利用算法。
  • 在这篇文章中,我们将使用我最喜欢的机器学习库scikit-learn在Python中实现朴素贝叶斯分类器。接下来,我们将使用经过训练的朴素贝叶斯(监督分类法)模型来预测人口收入。在朴素贝叶斯分类器的文章中我们讨论了贝叶斯...
  • 朴素贝叶斯分类

    2020-09-16 17:24:13
    朴素贝叶斯模型是一组非常简单快速的分类算法,通常适用于维度非常高的数据集。因为运行速度快,而且可调参数少,因此非常适合...每种标签设置生成模型贝叶斯分类器训练过程的主要部分。 “朴素”,如果对每种标签的
  • 1 朴素贝叶斯模型朴素贝叶斯法是基于贝叶斯定理、特征条件独立假设的分类方法。在预测时,对输入x,找出对应后验概率最大的 y 作为预测。NB模型:输入:先验概率分布:P(Y=ck),k=1,2,⋯,KP\left(Y=c_{k}\right), \...
  • 使用score()方法为这两个模型计算了分数,结果表明,与朴素朴素贝叶斯相比,多项朴素贝叶斯的性能良好,这是因为多项朴素贝叶斯假设特征是离散的,而高斯朴素贝叶斯则认为它们是连续的。 在这里,特征是离散的。 ...
  • 而朴素朴素贝叶斯分类是贝叶斯分类中最简单,也是常见的一种分类方法。这篇文章我尽可能用直白的话语总结一下我们学习会上讲到的朴素贝叶斯分类算法,希望有利于他人理解。 1   分类问题综述  ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 28,392
精华内容 11,356
关键字:

朴素贝叶斯分类模型的应用过程