贝叶斯 订阅
托马斯·贝叶斯(Thomas Bayes,1702-1761),18世纪英国神学家、数学家、数理统计学家和哲学家,概率论理论创始人,贝叶斯统计的创立者,“归纳地”运用数学概率,“从特殊推论一般、从样本推论全体”的第一人。 展开全文
托马斯·贝叶斯(Thomas Bayes,1702-1761),18世纪英国神学家、数学家、数理统计学家和哲学家,概率论理论创始人,贝叶斯统计的创立者,“归纳地”运用数学概率,“从特殊推论一般、从样本推论全体”的第一人。
信息
逝世日期
1761年4月7日
毕业院校
爱丁堡大学
出生地
英国伦敦
中文名
托马斯·贝叶斯
外文名
Thomas Bayes
出生日期
1702年
托马斯·贝叶斯人物简介
托马斯·贝叶斯 (Thomas Bayes),英国神学家、数学家、数理统计学家和哲学家,1702年出生于英国伦敦,做过神甫,1742年成为英国皇家学会会员。 贝叶斯曾是对概率论与统计的早期发展有重大影响的两位人物(另一位是布莱斯·帕斯卡Blaise Pascal)之一。
收起全文
精华内容
下载资源
问答
  • 贝叶斯方法谈到贝叶斯网络

    万次阅读 多人点赞 2014-11-10 19:04:49
    贝叶斯方法谈到贝叶斯网络 0 引言 事实上,介绍贝叶斯定理、贝叶斯方法、贝叶斯推断的资料、书籍不少,比如《数理统计学简史》,以及《统计决策论及贝叶斯分析 James O.Berger著》等等,然介绍贝叶斯网络...

     从贝叶斯方法谈到贝叶斯网络

     

    0 引言

        事实上,介绍贝叶斯定理、贝叶斯方法、贝叶斯推断的资料、书籍不少,比如《数理统计学简史》,以及《统计决策论及贝叶斯分析 James O.Berger著》等等,然介绍贝叶斯网络的中文资料则非常少,中文书籍总共也没几本,有的多是英文资料,但初学者一上来就扔给他一堆英文论文,因无基础和语言的障碍而读得异常吃力导致无法继续读下去则是非常可惜的(当然,有了一定的基础后,便可阅读更多的英文资料)。

        11月9日上午,机器学习班 第9次课讲贝叶斯网络,帮助大家提炼了贝叶斯网络的几个关键点:贝叶斯网络的定义、3种结构形式、因子图、以及Summary-Product算法等等,知道了贝叶斯网络是啥,怎么做,目标是啥之后,相信看英文论文也更好看懂了。

        故本文结合课程讲义及相关参考资料写就,从贝叶斯方法讲起,重点阐述贝叶斯网络,依然可以定义为一篇读书笔记或学习笔记,有任何问题,欢迎随时不吝指出,thanks。

     

     

    1 贝叶斯方法

        长久以来,人们对一件事情发生或不发生的概率,只有固定的0和1,即要么发生,要么不发生,从来不会去考虑某件事情发生的概率有多大,不发生的概率又是多大。而且概率虽然未知,但最起码是一个确定的值。比如如果问那时的人们一个问题:“有一个袋子,里面装着若干个白球和黑球,请问从袋子中取得白球的概率是多少?”他们会想都不用想,会立马告诉你,取出白球的概率就是1/2,要么取到白球,要么取不到白球,即θ只能有一个值,而且不论你取了多少次,取得白球的概率θ始终都是1/2,即不随观察结果X 的变化而变化。

        这种频率派的观点长期统治着人们的观念,直到后来一个名叫Thomas Bayes的人物出现。

    1.1 贝叶斯方法的提出

        托马斯·贝叶斯Thomas Bayes(1702-1763)在世时,并不为当时的人们所熟知,很少发表论文或出版著作,与当时学术界的人沟通交流也很少,用现在的话来说,贝叶斯就是活生生一民间学术“屌丝”,可这个“屌丝”最终发表了一篇名为“An essay towards solving a problem in the doctrine of chances”,翻译过来则是:机遇理论中一个问题的解。你可能觉得我要说:这篇论文的发表随机产生轰动效应,从而奠定贝叶斯在学术史上的地位。

                

        事实上,上篇论文发表后,在当时并未产生多少影响,在20世纪后,这篇论文才逐渐被人们所重视。对此,与梵高何其类似,画的画生前一文不值,死后价值连城。

        回到上面的例子:“有一个袋子,里面装着若干个白球和黑球,请问从袋子中取得白球的概率θ是多少?”贝叶斯认为取得白球的概率是个不确定的值,因为其中含有机遇的成分。比如,一个朋友创业,你明明知道创业的结果就两种,即要么成功要么失败,但你依然会忍不住去估计他创业成功的几率有多大?你如果对他为人比较了解,而且有方法、思路清晰、有毅力、且能团结周围的人,你会不由自主的估计他创业成功的几率可能在80%以上。这种不同于最开始的“非黑即白、非0即1”的思考方式,便是贝叶斯式的思考方式。

        继续深入讲解贝叶斯方法之前,先简单总结下频率派与贝叶斯派各自不同的思考方式:

    • 频率派把需要推断的参数θ看做是固定的未知常数,即概率虽然是未知的,但最起码是确定的一个值,同时,样本X 是随机的,所以频率派重点研究样本空间,大部分的概率计算都是针对样本X 的分布;
    • 而贝叶斯派的观点则截然相反,他们认为参数是随机变量,而样本X 是固定的,由于样本是固定的,所以他们重点研究的是参数的分布。

        相对来说,频率派的观点容易理解,所以下文重点阐述贝叶斯派的观点。

        贝叶斯派既然把看做是一个随机变量,所以要计算的分布,便得事先知道的无条件分布,即在有样本之前(或观察到X之前),有着怎样的分布呢?

        比如往台球桌上扔一个球,这个球落会落在何处呢?如果是不偏不倚的把球抛出去,那么此球落在台球桌上的任一位置都有着相同的机会,即球落在台球桌上某一位置的概率服从均匀分布。这种在实验之前定下的属于基本前提性质的分布称为先验分布,或的无条件分布。

        至此,贝叶斯及贝叶斯派提出了一个思考问题的固定模式:

    • 先验分布 + 样本信息 后验分布

        上述思考模式意味着,新观察到的样本信息将修正人们以前对事物的认知。换言之,在得到新的样本信息之前,人们对的认知是先验分布,在得到新的样本信息后,人们对的认知为

            其中,先验信息一般来源于经验跟历史资料。比如林丹跟某选手对决,解说一般会根据林丹历次比赛的成绩对此次比赛的胜负做个大致的判断。再比如,某工厂每天都要对产品进行质检,以评估产品的不合格率θ,经过一段时间后便会积累大量的历史资料,这些历史资料便是先验知识,有了这些先验知识,便在决定对一个产品是否需要每天质检时便有了依据,如果以往的历史资料显示,某产品的不合格率只有0.01%,便可视为信得过产品或免检产品,只每月抽检一两次,从而省去大量的人力物力。

        而后验分布一般也认为是在给定样本的情况下的条件分布,而使达到最大的值称为最大后验估计,类似于经典统计学中的极大似然估计。

        综合起来看,则好比是人类刚开始时对大自然只有少得可怜的先验知识,但随着不断观察、实验获得更多的样本、结果,使得人们对自然界的规律摸得越来越透彻。所以,贝叶斯方法既符合人们日常生活的思考方式,也符合人们认识自然的规律,经过不断的发展,最终占据统计学领域的半壁江山,与经典统计学分庭抗礼。

        此外,贝叶斯除了提出上述思考模式之外,还特别提出了举世闻名的贝叶斯定理。

    1.2 贝叶斯定理

        在引出贝叶斯定理之前,先学习几个定义:

    • 条件概率(又称后验概率)就是事件A在另外一个事件B已经发生条件下的发生概率。条件概率表示为P(A|B),读作“在B条件下A的概率”。

    比如,在同一个样本空间Ω中的事件或者子集A与B,如果随机从Ω中选出的一个元素属于B,那么这个随机选择的元素还属于A的概率就定义为在B的前提下A的条件概率,所以:P(A|B) = |A∩B|/|B|,接着分子、分母都除以|Ω|得到

    • 联合概率表示两个事件共同发生的概率。A与B的联合概率表示为或者
    • 边缘概率(又称先验概率)是某个事件发生的概率。边缘概率是这样得到的:在联合概率中,把最终结果中那些不需要的事件通过合并成它们的全概率,而消去它们(对离散随机变量用求和得全概率,对连续随机变量用积分得全概率),这称为边缘化(marginalization),比如A的边缘概率表示为P(A),B的边缘概率表示为P(B)。 

        接着,考虑一个问题:P(A|B)是在B发生的情况下A发生的可能性。

    1. 首先,事件B发生之前,我们对事件A的发生有一个基本的概率判断,称为A的先验概率,用P(A)表示;
    2. 其次,事件B发生之后,我们对事件A的发生概率重新评估,称为A的后验概率,用P(A|B)表示;
    3. 类似的,事件A发生之前,我们对事件B的发生有一个基本的概率判断,称为B的先验概率,用P(B)表示;
    4. 同样,事件A发生之后,我们对事件B的发生概率重新评估,称为B的后验概率,用P(B|A)表示。

        贝叶斯定理便是基于下述贝叶斯公式:

        上述公式的推导其实非常简单,就是从条件概率推出。

        根据条件概率的定义,在事件B发生的条件下事件A发生的概率是

        同样地,在事件A发生的条件下事件B发生的概率

        整理与合并上述两个方程式,便可以得到:

        接着,上式两边同除以P(B),若P(B)是非零的,我们便可以得到贝叶斯定理的公式表达式:

        所以,贝叶斯公式可以直接根据条件概率的定义直接推出。即因为P(A,B) = P(A)P(B|A) = P(B)P(A|B),所以P(A|B) = P(A)P(B|A)  / P(B)。

    1.3 应用:拼写检查

        经常在网上搜索东西的朋友知道,当你不小心输入一个不存在的单词时,搜索引擎会提示你是不是要输入某一个正确的单词,比如当你在Google中输入“Julw”时,系统会猜测你的意图:是不是要搜索“July”,如下图所示:

        这叫做拼写检查。根据谷歌一员工写的文章显示,Google的拼写检查基于贝叶斯方法。下面我们就来看看,怎么利用贝叶斯方法,实现"拼写检查"的功能。

        用户输入一个单词时,可能拼写正确,也可能拼写错误。如果把拼写正确的情况记做c(代表correct),拼写错误的情况记做w(代表wrong),那么"拼写检查"要做的事情就是:在发生w的情况下,试图推断出c。换言之:已知w,然后在若干个备选方案中,找出可能性最大的那个c,也就是求的最大值。
        而根据贝叶斯定理,有:

      

        由于对于所有备选的c来说,对应的都是同一个w,所以它们的P(w)是相同的,因此我们只要最大化

        即可。其中:

    • P(c)表示某个正确的词的出现"概率",它可以用"频率"代替。如果我们有一个足够大的文本库,那么这个文本库中每个单词的出现频率,就相当于它的发生概率。某个词的出现频率越高,P(c)就越大。比如在你输入一个错误的词“Julw”时,系统更倾向于去猜测你可能想输入的词是“July”,而不是“Jult”,因为“July”更常见。
    • P(w|c)表示在试图拼写c的情况下,出现拼写错误w的概率。为了简化问题,假定两个单词在字形上越接近,就有越可能拼错,P(w|c)就越大。举例来说,相差一个字母的拼法,就比相差两个字母的拼法,发生概率更高。你想拼写单词July,那么错误拼成Julw(相差一个字母)的可能性,就比拼成Jullw高(相差两个字母)。值得一提的是,一般把这种问题称为“编辑距离”,参见博客中的这篇文章。

        所以,我们比较所有拼写相近的词在文本库中的出现频率,再从中挑出出现频率最高的一个,即是用户最想输入的那个词。具体的计算过程及此方法的缺陷请参见这里

     

    2 贝叶斯网络

    2.1 贝叶斯网络的定义

        贝叶斯网络(Bayesian network),又称信念网络(Belief Network),或有向无环图模型(directed acyclic graphical model),是一种概率图模型,于1985年由Judea Pearl首先提出。它是一种模拟人类推理过程中因果关系的不确定性处理模型,其网络拓朴结构是一个有向无环图(DAG)。 

        贝叶斯网络的有向无环图中的节点表示随机变量,它们可以是可观察到的变量,或隐变量、未知参数等。认为有因果关系(或非条件独立)的变量或命题则用箭头来连接。若两个节点间以一个单箭头连接在一起,表示其中一个节点是“因(parents)”,另一个是“果(children)”,两节点就会产生一个条件概率值。

        总而言之,连接两个节点的箭头代表此两个随机变量是具有因果关系,或非条件独立

        例如,假设节点E直接影响到节点H,即E→H,则用从E指向H的箭头建立结点E到结点H的有向弧(E,H),权值(即连接强度)用条件概率P(H|E)来表示,如下图所示:

        简言之,把某个研究系统中涉及的随机变量,根据是否条件独立绘制在一个有向图中,就形成了贝叶斯网络。其主要用来描述随机变量之间的条件依赖,用圈表示随机变量(random variables),用箭头表示条件依赖(conditional dependencies)。

        令G = (I,E)表示一个有向无环图(DAG),其中I代表图形中所有的节点的集合,而E代表有向连接线段的集合,且令X = (Xi)i ∈ I为其有向无环图中的某一节点i所代表的随机变量,若节点X的联合概率可以表示成:

        则称X为相对于一有向无环图G 的贝叶斯网络,其中,表示节点i之“因”,或称pa(i)是i的parents(父母)。 

        此外,对于任意的随机变量,其联合概率可由各自的局部条件概率分布相乘而得出:

        

        如下图所示,便是一个简单的贝叶斯网络:

        因为a导致b,a和b导致c,所以有

    2.2 贝叶斯网络的3种结构形式

        给定如下图所示的一个贝叶斯网络:

        从图上可以比较直观的看出:

    • 1. x1,x2,…x7的联合分布为

    • 2. x1和x2独立(对应head-to-head);
    • 3. x6和x7在x4给定的条件下独立(对应tail-to-tail)。

        根据上图,第1点可能很容易理解,但第2、3点中所述的条件独立是啥意思呢?其实第2、3点是贝叶斯网络中3种结构形式中的其中二种。为了说清楚这个问题,需要引入D-Separation(D-分离)这个概念。

        D-Separation是一种用来判断变量是否条件独立的图形化方法。换言之,对于一个DAG(有向无环图)E,D-Separation方法可以快速的判断出两个节点之间是否是条件独立的。

    2.2.1 形式1:head-to-head

        贝叶斯网络的第一种结构形式如下图所示:

        所以有:P(a,b,c) = P(a)*P(b)*P(c|a,b)成立,化简后可得:

        即在c未知的条件下,a、b被阻断(blocked),是独立的,称之为head-to-head条件独立,对应本节中最开始那张图中的“x1、x2独立”。

    2.2.2 形式2:tail-to-tail

        贝叶斯网络的第二种结构形式如下图所示

        考虑c未知,跟c已知这两种情况:

    1. 在c未知的时候,有:P(a,b,c)=P(c)*P(a|c)*P(b|c),此时,没法得出P(a,b) = P(a)P(b),即c未知时,a、b不独立。
    2. 在c已知的时候,有:P(a,b|c)=P(a,b,c)/P(c),然后将P(a,b,c)=P(c)*P(a|c)*P(b|c)带入式子中,得到:P(a,b|c)=P(a,b,c)/P(c) = P(c)*P(a|c)*P(b|c) / P(c) = P(a|c)*P(b|c),即c已知时,a、b独立。

        所以,在c给定的条件下,a,b被阻断(blocked),是独立的,称之为tail-to-tail条件独立,对应本节中最开始那张图中的“x6和x7在x4给定的条件下独立”。

    2.2.3 形式3:head-to-tail

        贝叶斯网络的第三种结构形式如下图所示:

        还是分c未知跟c已知这两种情况:

    1. c未知时,有:P(a,b,c)=P(a)*P(c|a)*P(b|c),但无法推出P(a,b) = P(a)P(b),即c未知时,a、b不独立。
    2. c已知时,有:P(a,b|c)=P(a,b,c)/P(c),且根据P(a,c) = P(a)*P(c|a) = P(c)*P(a|c),可化简得到:

        所以,在c给定的条件下,a,b被阻断(blocked),是独立的,称之为head-to-tail条件独立。

        插一句:这个head-to-tail其实就是一个链式网络,如下图所示:

        根据之前对head-to-tail的讲解,我们已经知道,在xi给定的条件下,xi+1的分布和x1,x2…xi-1条件独立。意味着啥呢?意味着:xi+1的分布状态只和xi有关,和其他变量条件独立。通俗点说,当前状态只跟上一状态有关,跟上上或上上之前的状态无关。这种顺次演变的随机过程,就叫做马尔科夫链(Markov chain)。且有:

        接着,将上述结点推广到结点集,则是:对于任意的结点集A,B,C,考察所有通过A中任意结点到B中任意结点的路径,若要求A,B条件独立,则需要所有的路径都被阻断(blocked),即满足下列两个前提之一:

    1. A和B的“head-to-tail型”和“tail-to-tail型”路径都通过C;
    2. A和B的“head-to-head型”路径不通过C以及C的子孙;

        最后,举例说明上述D-Separation的3种情况(即贝叶斯网络的3种结构形式),则是如下图所示:

     

        上图中左边部分是head-to-tail,给定 T 时,A 和 X 独立;右边部分的右上角是tail-to-tail,给定S时,L和B独立;右边部分的右下角是head-to-head,未给定D时,L和B独立。

    2.3 贝叶斯网络的实例

        给定如下图所示的贝叶斯网络:

    其中,各个单词、表达式表示的含义如下:

    • smoking表示吸烟,其概率用P(S)表示,lung Cancer表示的肺癌,一个人在吸烟的情况下得肺癌的概率用P(C|S)表示,X-ray表示需要照医学上的X光,肺癌可能会导致需要照X光,吸烟也有可能会导致需要照X光(所以smoking也是X-ray的一个因),所以,因吸烟且得肺癌而需要照X光的概率用P(X|C,S)表示。
    • Bronchitis表示支气管炎,一个人在吸烟的情况下得支气管炎的概率用P(B|S),dyspnoea表示呼吸困难,支气管炎可能会导致呼吸困难,肺癌也有可能会导致呼吸困难(所以lung Cancer也是dyspnoea的一个因),因吸烟且得了支气管炎导致呼吸困难的概率用P(D|C,B)表示。

        lung Cancer简记为C,Bronchitis简记为B,dyspnoea简记为D,且C = 0表示lung Cancer不发生的概率,C = 1表示lung Cancer发生的概率,B等于0(B不发生)或1(B发生)也类似于C,同样的,D=1表示D发生的概率,D=0表示D不发生的概率,便可得到dyspnoea的一张概率表,如上图的最右下角所示。

    2.4 因子图

        回到2.3节中那个实例上,如下图所示:

        对于上图,在一个人已经呼吸困难(dyspnoea)的情况下,其抽烟(smoking)的概率是多少呢?即:

         咱们来一步步计算推导下:

        解释下上述式子推导过程:

    1. 第二行:对联合概率关于b,x,c求和(在d=1的条件下),从而消去b,x,c,得到s和d=1的联合概率。
    2. 第三行:最开始,所有变量都在sigma(d=1,b,x,c)的后面(sigma表示对“求和”的称谓),但由于P(s)和“d=1,b,x,c”都没关系,所以,可以提到式子的最前面。而且P(b|s)和x、c没关系,所以,也可以把它提出来,放到sigma(b)的后面,从而式子的右边剩下sigma(x)和sigma(c)。

        此外,图中Variable elimination表示的是变量消除的意思。为了更好的解决此类问题,咱们得引入因子图的概念。

    2.4.1 因子图的定义

        wikipedia上是这样定义因子图的:将一个具有多变量的全局函数因子分解,得到几个局部函数的乘积,以此为基础得到的一个双向图叫做因子图(Factor Graph)。

        比如,假定对于函数,有下述式子成立:

        其中,其对应的因子图包括:

    1. 变量节点
    2.  因子(函数)节点
    3. ,边通过下列因式分解结果得到:在因子(函数)节点和变量节点之间存在边的充要条件是存在。

        正式的定义果然晦涩!我相信你没看懂。通俗来讲,所谓因子图就是对函数进行因子分解得到的一种概率图。一般内含两种节点:变量节点和函数节点。我们知道,一个全局函数通过因式分解能够分解为多个局部函数的乘积,这些局部函数和对应的变量关系就体现在因子图上。

        举个例子,现在有一个全局函数,其因式分解方程为:

        其中fA,fB,fC,fD,fE为各函数,表示变量之间的关系,可以是条件概率也可以是其他关系(如马尔可夫随机场Markov Random Fields中的势函数)。

        为了方便表示,可以写成:

        其对应的因子图为:

        且上述因子图等价于:

        所以,在因子图中,所有的顶点不是变量节点就是函数节点,边线表示它们之间的函数关系。

        但搞了半天,虽然知道了什么是因子图,但因子图到底是干嘛的呢?为何要引入因子图,其用途和意义何在?事实上,因子图跟贝叶斯网络和马尔科夫随机场(Markov Random Fields)一样,也是概率图的一种。

        既然提到了马尔科夫随机场,那顺便说下有向图、无向图,以及条件随机场等相关概念。

    • 我们已经知道,有向图模型,又称作贝叶斯网络(Directed Graphical Models, DGM, Bayesian Network)。

    • 但在有些情况下,强制对某些结点之间的边增加方向是不合适的。使用没有方向的无向边,形成了无向图模型(Undirected Graphical Model,UGM), 又被称为马尔科夫随机场或者马尔科夫网络(Markov Random Field,  MRF or Markov network)。

    • 设X=(X1,X2…Xn)和Y=(Y1,Y2…Ym)都是联合随机变量,若随机变量Y构成一个无向图 G=(V,E)表示的马尔科夫随机场(MRF),则条件概率分布P(Y|X)称为条件随机场(Conditional Random Field, 简称CRF,后续新的博客中可能会阐述CRF)。如下图所示,便是一个线性链条件随机场的无向图模型:

        回到本文的主旨上来。在概率图中,求某个变量的边缘分布是常见的问题。这问题有很多求解方法,其中之一就是把贝叶斯网络或马尔科夫随机场转换成因子图,然后用sum-product算法求解。换言之,基于因子图可以用sum-product 算法高效的求各个变量的边缘分布。

        先通过一些例子分别说明如何把贝叶斯网络(和马尔科夫随机场),以及把马尔科夫链、隐马尔科夫模型转换成因子图后的情形,然后在2.4.2节,咱们再来看如何利用因子图的sum-product算法求边缘概率分布。

        给定下图所示的贝叶斯网络或马尔科夫随机场:

        根据各个变量对应的关系,可得:

        其对应的因子图为(以下两种因子图的表示方式皆可):

        由上述例子总结出由贝叶斯网络构造因子图的方法:

    • 贝叶斯网络中的一个因子对应因子图中的一个结点
    • 贝叶斯网络中的每一个变量在因子图上对应边或者半边
    • 结点g和边x相连当且仅当变量x出现在因子g中。

        再比如,对于下图所示的由马尔科夫链转换而成的因子图:

        有:

        而对于如下图所示的由隐马尔科夫模型转换而成的因子图:

        有

    2.4.2 Sum-product算法

        我们已经知道,对于下图所示的因子图:

        有:

        下面,咱们来考虑一个问题:即如何由联合概率分布求边缘概率分布。

        首先回顾下联合概率和边缘概率的定义,如下:

    • 联合概率表示两个事件共同发生的概率。A与B的联合概率表示为或者
    • 边缘概率(又称先验概率)是某个事件发生的概率。边缘概率是这样得到的:在联合概率中,把最终结果中不需要的那些事件合并成其事件的全概率而消失(对离散随机变量用求和得全概率,对连续随机变量用积分得全概率)。这称为边缘化(marginalization)。A的边缘概率表示为P(A),B的边缘概率表示为P(B)。 

        事实上,某个随机变量fk的边缘概率可由x1,x2,x3, ..., xn的联合概率求到,具体公式为:

        啊哈,啥原理呢?原理很简单,还是它:对xk外的其它变量的概率求和,最终剩下xk的概率!

        此外,换言之,如果有

        那么

        上述式子如何进一步化简计算呢?考虑到我们小学所学到的乘法分配率,可知a*b + a*c = a*(b + c),前者2次乘法1次加法,后者1次乘法,1次加法。我们这里的计算是否能借鉴到分配率呢?别急,且听下文慢慢道来。

        假定现在我们需要计算如下式子的结果:

    同时,f 能被分解如下:

        借鉴分配率,我们可以提取公因子:

         因为变量的边缘概率等于所有与他相连的函数传递过来的消息的积,所以计算得到:

        仔细观察上述计算过程,可以发现,其中用到了类似“消息传递”的观点,且总共两个步骤。

        第一步、对于f 的分解图,根据蓝色虚线框、红色虚线框围住的两个box外面的消息传递:

        计算可得:

        第二步、根据蓝色虚线框、红色虚线框围住的两个box内部的消息传递:

        根据,我们有:

        就这样,上述计算过程将一个概率分布写成两个因子的乘积,而这两个因子可以继续分解或者通过已知得到。这种利用消息传递的观念计算概率的方法便是sum-product算法。前面说过,基于因子图可以用sum-product算法可以高效的求各个变量的边缘分布。

        到底什么是sum-product算法呢?sum-product算法,也叫belief propagation,有两种消息:

    • 一种是变量(Variable)到函数(Function)的消息:,如下图所示

        此时,变量到函数的消息为

    • 另外一种是函数(Function)到变量(Variable)的消息:。如下图所示:

        此时,函数到变量的消息为:

        以下是sum-product算法的总体框架:

    • 1、给定如下图所示的因子图:

    • 2、sum-product 算法的消息计算规则为:

    • 3、根据sum-product定理,如果因子图中的函数f 没有周期,则有:

        值得一提的是:如果因子图是无环的,则一定可以准确的求出任意一个变量的边缘分布,如果是有环的,则无法用sum-product算法准确求出来边缘分布。

        比如,下图所示的贝叶斯网络:

        其转换成因子图后,为:

        可以发现,若贝叶斯网络中存在“环”(无向),则因此构造的因子图会得到环。而使用消息传递的思想,这个消息将无限传输下去,不利于概率计算。
        解决方法有3个:

    • 1、删除贝叶斯网络中的若干条边,使得它不含有无向环

        比如给定下图中左边部分所示的原贝叶斯网络,可以通过去掉C和E之间的边,使得它重新变成有向无环图,从而成为图中右边部分的近似树结构:

        具体变换的过程为最大权生成树算法MSWT(详细建立过程请参阅此PPT 第60页),通过此算法,这课树的近似联合概率P'(x)和原贝叶斯网络的联合概率P(x)的相对熵(如果忘了什么叫相对熵,请参阅:最大熵模型中的数学推导)最小。

    • 2、重新构造没有环的贝叶斯网络
    • 3、选择loopy belief propagation算法(你可以简单理解为sum-product 算法的递归版本),此算法一般选择环中的某个消息,随机赋个初值,然后用sum-product算法,迭代下去,因为有环,一定会到达刚才赋初值的那个消息,然后更新那个消息,继续迭代,直到没有消息再改变为止。唯一的缺点是不确保收敛,当然,此算法在绝大多数情况下是收敛的。

        此外,除了这个sum-product算法,还有一个max-product 算法。但只要弄懂了sum-product,也就弄懂了max-product 算法。因为max-product 算法就在上面sum-product 算法的基础上把求和符号换成求最大值max的符号即可!

        最后,sum-product 和 max-product 算法也能应用到隐马尔科夫模型hidden Markov models上,后面有机会的话可以介绍。本文完。

     

    3 参考文献和推荐阅读

    1. Thomas Bayes "An essay towards solving a Problem in the Doctrine of Chances"(贝叶斯定理原始论文):http://www.sbs-bvs.be/bsn57/bsn57-6.pdf
    2. 《数理统计学简史 第三章 贝叶斯方法》;
    3. 《贝叶斯统计 茆诗松著》;
    4. “Julw”的搜索结果:http://www.gu1234.com/search?hl=zh-CN&site=webhp&source=hp&q=Julw&btnK=Google+%E6%90%9C%E7%B4%A2&gws_rd=ssl
    5. 北京10月机器学习班第9次课,邹博讲贝叶斯网络的PPThttp://pan.baidu.com/s/1o69Lp1K
    6. 相关wikipedia,比如贝叶斯定理的wiki:http://zh.wikipedia.org/zh/%E8%B4%9D%E5%8F%B6%E6%96%AF%E5%AE%9A%E7%90%86,贝叶斯网络的wiki:http://zh.wikipedia.org/wiki/%E8%B2%9D%E6%B0%8F%E7%B6%B2%E8%B7%AF。因子图中文wiki:http://zh.wikipedia.org/zh/%E5%9B%A0%E5%AD%90%E5%9B%BE,英文wik:http://en.wikipedia.org/wiki/Factor_graph
    7. 《统计决策论及贝叶斯分析 James O.Berger著》;
    8. 贝叶斯定理:http://www.guokr.com/question/547339/
    9. 贝叶斯推断及其互联网应用(一):定理简介http://www.ruanyifeng.com/blog/2011/08/bayesian_inference_part_one.html
    10. 贝叶斯推断及其互联网应用(三):拼写检查http://www.ruanyifeng.com/blog/2012/10/spelling_corrector.html
    11. Google研发总监Peter Norvig解释拼写检查的原理:http://norvig.com/spell-correct.html
    12. http://www.eng.yale.edu/pjk/eesrproj_02/luckenbill_html/node4.html(sum-product);
    13. Pattern Recognition and Machine Learning Chapter 8, M. Jordan, J. Kleinberg, ect, 2006;
    14. D-Separation(D分离)-PRML-8.22-Graphical Model by 小军:http://www.zhujun.me/d-separation-separation-d.html
    15. 因子图介绍 by Hans-Andrea Loeliger:http://www.robots.ox.ac.uk/~parg/mlrg/papers/factorgraphs.pdf
    16. http://netclass.csu.edu.cn/jpkc2003/rengongzhineng/rengongzhineng/kejian/ai/ai/chapter4/442.htm
    17. 贝叶斯网的R实现( Bayesian networks in R)(二)bnlearn(2):http://site.douban.com/182577/widget/notes/12817482/note/283039795/
    18. 知乎上关于贝叶斯学派跟频率派的区别的讨论:http://www.zhihu.com/question/20587681
    19. factor graph,因子图,势函数potential function,Template models:http://www.cnblogs.com/549294286/archive/2013/06/06/3121454.html
    20. Online Bayesian Probit Regression介绍之Factor Graph:http://www.doingkong.com/?p=68
    21. An Introduction to Factor Graphs,Hans-Andrea Loeliger,MLSB 2008:http://people.binf.ku.dk/~thamelry/MLSB08/hal.pdf
    22. Factor graph and sum-product algorithm, Frank R. Kschischang, Brendan J.Frey, ect, 1998:http://filebox.vt.edu/~rmtaylor/Graphical_Modeling/Intro_and_tutorial/Kschischang_ffg_sumproduct.pdf
    23. A Tutorial on Inference and Learning in Bayesian Networks, Irina Rish:http://www.ee.columbia.edu/~vittorio/Lecture12.pdf
    24. Probabilistic Graphical Models Directed GMs: Bayesian Networks:http://www.cs.cmu.edu/~epxing/Class/10708/lectures/lecture2-BNrepresentation.pdf
    25. A Brief Introduction to Graphical Models and Bayesian Networks By Kevin Murphy, 1998:http://www.cs.ubc.ca/~murphyk/Bayes/bayes.html
    26. Probabilistic Models for Unsupervised Learning(从一个统一的视角去理解: bayesian、MAP、ML,以及FA、EM、PCA、ICA、GMM、HMM等算法):http://mlg.eng.cam.ac.uk/zoubin/nipstut.pdf
    27. PRML概率图模型读书笔记:http://vdisk.weibo.com/s/DmxNcM5-7sGS
    28. 12月14日,机器学习班第15次课,邹博讲条件随机场CRF的PPT:http://pan.baidu.com/s/1qWBdOD2
    展开全文
  • 贝叶斯

    2020-05-26 21:39:49
    贝叶斯优化 贝叶斯神经网络 贝叶斯网络 贝叶斯 bayesan related 贝叶斯

    贝叶斯优化
    贝叶斯神经网络
    贝叶斯网络
    贝叶斯
    bayesan
    related
    贝叶斯

    展开全文
  • 朴素贝叶斯(Naive Bayes)原理+编程实现拉普拉斯修正的朴素贝叶斯分类器,以西瓜数据集3.0为训练集,对“测1”样本进行判别。

    1.生成模型与判别模型

      在概率生成模型(Probabilistic Generative Model)与朴素贝叶斯(Naive Bayes)中大概学习了一下概率生成模型以及朴素贝叶斯,今天在这里再总结一下生成模型与判别模型。
    在这里插入图片描述
      上面这张图可以清楚的解释二者的差别。前面我们讲到, 所谓的机器学习模型,本质上是一个函数,其作用是实现从一个样本 xx 到样本的标记值 yy 的映射,即 f(x;θ)yf(x;\theta ^{*})\rightarrow y,或者求得标签的条件概率:
    在这里插入图片描述
      例如有C1以及C2两种类别,我们需要判断样本属于哪一个class:

    • 判别式模型:要确定一个样本是属于C1还是C2,用判别模型的方法是从历史数据中学习到模型,然后通过提取该样本的特征来预测出该样本属于C1的概率以及C2的概率。
    • 生成式模型:根据C1的特征首先学习出一个C1的模型,然后根据C2的特征学习出一个C2的模型,然后从该样本中提取特征,放到C1模型中看概率是多少,然后再放到C2模型中看概率是多少,哪个大就是哪个。
    • 判别模型之所以称为判别模型,就是因为它只是简单地判别就好了。根据样本X来判别它所属的类别,直接就求出了p(yx)p(y|x)的大小
    • 而生成模型,在概率生成模型(Probabilistic Generative Model)与朴素贝叶斯(Naive Bayes)中我们可以看到,我们要求:
      在这里插入图片描述
      P(C1)与P(C2)很好求,我们要求的是P(x|C1)以及P(x|C2),也就是说我们要先求得C1与C2的具体分布,也就是上面说的,分别根据C1与C2的特征学得两个模型,得到模型之后代入,若P(C1|x)>0.5那x就属于C1,否则属于C2。

    2.贝叶斯

    2.1贝叶斯公式

    在这里插入图片描述
      学过概率论的都应该对上面这个公式很熟悉,这里就不再细讲了。这里需要注意的点是注意区分先验概率、后验概率、联合概率三个概念。

    2.2贝叶斯方法

      机器学习的最终目的就是回归 or 分类,这里二者都可以理解为预测,回归很好理解,分类也可以理解为预测属于某一类的概率是多少。 我们把上述贝叶斯公式中的X理解为“具有某特征”,把Y理解成“类别标签”,那么贝叶斯公式就可以表示为:
    P(“属于某类”|“具有某特征”)=P(“具有某特征”|“属于某类”)P(“属于某类”)/P(“具有某特征”)

      贝叶斯方法把计算“具有某特征条件下属于某类(就是分类)”的概率转化为需要计算“属于某类条件下具有某特征(分别训练模型)”的概率,属于有监督学习。

    3朴素贝叶斯

      我们以垃圾邮件识别来引出朴素贝叶斯。
    在这里插入图片描述
      我们要做的是判断上面那个邮件:“我司可办理正规发票(保真)17%增值税发票点数优惠”是否属于垃圾邮件。我们不能直接判断一整个邮件是否属于垃圾邮件,我们首先想到的应该是“分词”,所谓分词就是把邮件拆成一个个的词语,通过该词语是否属于训练样本中的垃圾邮件来做出进一步判断:
    在这里插入图片描述
    前面我们提到:
      贝叶斯方法把计算“具有某特征条件下属于某类(就是分类)”的概率转化为需要计算“属于某类条件下具有某特征(分别训练模型)”的概率,属于有监督学习。 也就是说,我们现在要计算的是:正常邮件 or 垃圾邮件中具有上述那些词语的概率。

    3.1条件独立性假设

      引入条件独立假设:
    在这里插入图片描述
      我们把求某一类邮件中包含上述那些词语的概率等同于某一类邮件中包含每一种词语概率的乘积!!这其实就是朴素贝叶斯的实质,也是条件独立假设的实质。
      既然如此,那每一项都变得特别好求解了:
    在这里插入图片描述
    要算P(x1|C),那就直接在训练集中统计一下,看看x1在类别c1中出现的概率是多少即可。

    3.2朴素贝叶斯Naive在何处?

    1. 加上条件独立假设的贝叶斯方法就是朴素贝叶斯方法(Naive Bayes)
    2. 由于乘法交换律,朴素贝叶斯中算出来交换词语顺序的条件概率完全一样

      上述2的意思是:对于朴素贝叶斯模型来讲,“我司可办理正规发票”与“正规发票可办理我司”是一样的,会给出相同的判别结果,这点应该很好理解,因为你有了条件独立假设,abc与cba肯定大小是一样的,自然概率也是一样的,判别结果也就一样了。

    3.3朴素贝叶斯的三种模型

    1. 多项式模型
      在这里插入图片描述
      多项式模型跟我们思维是一样的,例如在上述条件概率中,“发票”一词语出现了三次,那利用条件独立假设条件之后,自然应该出现三次方,这就是多项式模型。

    2. 伯努利模型
      在这里插入图片描述
      在伯努利模型中我们可以看到,即使“发票”一词出现三次,但是我们在最终计算时只算一次。

    3. 混合模型
      在这里插入图片描述
      在混合模型中,我们计算句子概率时不考虑重复词语出现的次数,但在统计计算词语概率时考虑重复次数。
      一张图概括三种模型:
      在这里插入图片描述

    3.4平滑技术

      我们先来看这样一种可能:我们在求P(“正规发票”|S)时,通常的做法就是在训练集中遍历,看看“正规发票”一词出现了多少次,但是好巧不巧,该词在训练集中一次都没有出现过,那概率不就是0了么,然后条件独立假设相乘。。。于是整个概率都变成了0,这显然是极不合理的,但是这种情况却不少见。
      于是我们引入了平滑技术这一概念来解决这个问题:
    在这里插入图片描述
    这样,上述概率就不为0了,方便后续判断。

    3.5朴素贝叶斯优缺点

    优点:

    1. 对待预测样本进行预测,过程简单速度快
    2. 对于多分类问题也同样有效,复杂度也不会有大程度地上升。
    3. 在分布独立这个假设成立的情况下,贝叶斯的分类效果很好,会略胜于逻辑回归,我们需要的样本量也更少一点。
    4. 对于类别类的输入特征变量,效果非常好。对于数值型变量特征,我们默认它符合正态分布。

    缺点:

    1. 如果测试集中的一个类别变量特征在训练集里面没有出现过,那么概率就是0,预测功能就将失效,平滑技术可以解决这个问题
    2. 朴素贝叶斯中有分布独立的假设前提,但是在现实生活中,这个条件很难满足。

    3.6朴素贝叶斯的应用与代码实现

      作业:编程实现拉普拉斯修正的朴素贝叶斯分类器,并以西瓜数据集3.0为训练集,对“测1”样本进行判别。
    数据集长这样:
    在这里插入图片描述
    代码实现:

    import pandas as pd
    
    def readfile():
        datasets = pd.read_csv(r'E:\Program Files\PyCharm 2019.2\machinelearning\homework\西瓜3.0.csv', encoding="gbk")
        del datasets['编号']
        del datasets['好瓜']
        return datasets
    
    def NaiveBayes(test):
        data = readfile()
        data = data.values.tolist()
        goodMelon = [];badMelon = []
        for i in range(len(data)):
            if data[i][8] == 1:
                goodMelon.append(data[i])
            else:
                badMelon.append(data[i])
        # 计算p(x|C1)=p1与p(x|C2)=p2
        p1 = 1.0;p2 = 1.0
        for j in range(len(test)):
            x=0.0
            for k in range(len(goodMelon)):
                if goodMelon[k][j] == test[j]:
                    x = x + 1.0
            p1 = p1 * ((x + 1.0) / (len(goodMelon) + 2.0))  # 拉普拉斯平滑
        for j in range(len(test)):
            x=0.0
            for k in range(len(badMelon)):
                if badMelon[k][j] == test[j]:
                    x = x + 1.0
            p2 = p2 * ((x + 1.0) / (len(badMelon) + 2.0))  # 拉普拉斯平滑
        pc1 = len(goodMelon) / len(data)
        pc2 = 1 - pc1
        #贝叶斯公式
        p_good = p1*pc1;p_bad=p2*pc2
        if p_good > p_bad:
            print('好瓜')
        else:
            print('坏瓜')
    
    if __name__ == '__main__':
        test=['青绿','蜷缩','浊响','清晰','凹陷','硬滑',0.697,0.460]
        NaiveBayes(test)
        
    

    结果:好瓜,分类正确。
    在这里插入图片描述

    展开全文
  • 带你搞懂朴素贝叶斯分类算法

    万次阅读 多人点赞 2017-04-14 16:19:33
    贝叶斯分类是一类分类算法的总称,这类算法均以贝叶斯定理为基础,故统称为贝叶斯分类。而朴素朴素贝叶斯分类是贝叶斯分类中最简单,也是常见的一种分类方法。这篇文章我尽可能用直白的话语总结一下我们学习会上讲到...

    最新人工智能论文:http://paperreading.club

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

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

     

    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)

     

    致谢:德川,皓宇,继豪,施琦


    原文地址:https://mp.weixin.qq.com/s?__biz=MzI4MDYzNzg4Mw==&mid=2247483819&idx=1&sn=7f1859c0a00248a4c658fa65f846f341&chksm=ebb4397fdcc3b06933816770b928355eb9119c4c80a1148b92a42dc3c08de5098fd6f278e61e#rd

    展开全文
  • 动态贝叶斯

    2018-02-02 22:36:42
    动态贝叶斯动态贝叶斯动态贝叶斯动态贝叶斯动态贝叶斯动态贝叶斯动态贝叶斯动态贝叶斯动态贝叶斯
  • 贝叶斯分析

    2017-12-07 18:31:47
    贝叶斯分析 贝叶斯 分析 贝叶斯分析 贝叶斯 分析 贝叶斯分析 贝叶斯 分析
  • 贝叶斯估计

    2017-11-27 11:02:08
    贝叶斯估计 贝叶斯估计 贝叶斯估计 贝叶斯估计 贝叶斯估计
  • 贝叶斯网络

    2018-01-21 11:09:50
    9.1贝叶斯网络9.1贝叶斯网络9.1贝叶斯网络9.1贝叶斯网络
  • 1.1贝叶斯定理 1.2贝叶斯定理的应用--单个特征举例 1.3贝叶斯定理的应用--多个特征到朴素贝叶斯 1.4多项式朴素贝叶斯算法案例--离散特征 1.5多项式朴素贝叶斯算法案例--平滑下的计算 1.6高斯和伯努利朴素贝叶斯--...
  • 贝叶斯理解以及解释贝叶斯函数

    千次阅读 2017-10-14 19:29:29
    贝叶斯
  • 条件概率/全概率/贝叶斯公式

    万次阅读 多人点赞 2018-07-17 11:39:05
    解析:贝叶斯这一概念,所探讨的问题,也是事件A和事件B都是某一实验的不同的结果集合,然后把事件B这个结果集合分为n小份,每一小份也是结果集合,只不过这些小集合一定位于B集合内部,每一小份结果集合称为Bi(i∈...
  • 贝叶斯方法 概率编程与贝叶斯推断 贝叶斯方法 概率编程与贝叶斯推断
  • 贝叶斯统计-ch5贝叶斯决策 贝叶斯统计-ch5贝叶斯决策 贝叶斯统计-ch5贝叶斯决策
  • 贝叶斯分类器

    2019-02-10 00:11:38
    课程主要讲解贝叶斯决策论、朴素贝叶斯、半朴素贝叶斯贝叶斯网络、EM算法
  • 深入理解朴素贝叶斯(Naive Bayes)

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

    2019-01-10 22:53:13
    贝叶斯判别,模式识别作业。比较简单。可以参考一下,提供借鉴。
  • 朴素贝叶斯分类:原理

    万次阅读 多人点赞 2019-05-29 15:29:54
    贝叶斯原理是英国数学家托马斯·贝叶斯提出的。贝叶斯是个很神奇的人,他的经历类似梵高。生前没有得到重视,死后,他写的一篇关于归纳推理的论文被朋友翻了出来,并发表了。这一发表不要紧,结果这篇论文的思想直接...
  • 含有三份代码,都是用matlab实现,分别是基于贝叶斯,基于朴素贝叶斯,基于最小错误率贝叶斯的手写数字识别代码。其中朴素贝叶斯用到了PCA,准确率达到95%
  • 贝叶斯公式/贝叶斯法则/贝叶斯定理

    万次阅读 多人点赞 2018-05-04 15:55:44
    贝叶斯法则 贝叶斯定理是用来做什么的?简单说,概率预测:某个条件下,一件事发生的概率是多大? wiki 把为什么要做这个定理谈的很清楚,是为了覆盖逆概的场景: 在贝叶斯写这篇文章之前,人们已经能够计算...
  • 贝叶斯定理

    万次阅读 多人点赞 2018-11-20 06:41:38
    贝叶斯定律贝叶斯定理有什么用贝叶斯定理由来正向概率为什么贝叶斯定理在生活中这么有用什么是贝叶斯定理先验概率可能性函数后验概率如何理解贝叶斯定理贝叶斯定理的应用案例全概率公式贝叶斯定理在判断中的应用第1...
  • 贝叶斯:高斯贝叶斯,多项式贝叶斯,伯努利贝叶斯 高斯贝叶斯:先验为高斯分布的朴素贝叶斯 多项式贝叶斯;先验为多项式的分布的朴素贝叶斯 伯努利贝叶斯:先验为伯努利分布的朴素贝叶斯,适用于样本很稀松的二元...
  • 朴素贝叶斯

    2019-12-11 09:16:05
    朴素贝叶斯朴素贝叶斯 朴素贝叶斯
  • 概述在日常学习之中,我们经常能见到各种带有“贝叶斯”的词语,例如贝叶斯决策、朴素贝叶斯贝叶斯估计,有时就会在诸如机器学习或者模式识别的课程上遇到它们中的一两个,学习的时候能把其中某个弄得清清楚楚,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 39,314
精华内容 15,725
关键字:

贝叶斯