美文网首页生信统计分析
贝叶斯方法、定理、分类、网络

贝叶斯方法、定理、分类、网络

作者: 高永峰_GYF | 来源:发表于2018-10-28 10:18 被阅读0次

    1 贝叶斯方法

    长久以来,人们对一件事情发生或不发生的概率,仅仅有固定的0和1,即要么发生,要么不发生。假设问那时的人们一个问题:“有一个袋子,里面装着若干个白球和黑球,请问从袋子中取得白球的概率是多少?”他们会想都不用想,会立刻告诉你。取出白球的概率就是1/2,要么取到白球,要么取不到白球。即θ仅仅能有一个值。并且不论你取了多少次,取得白球的概率θ始终都是1/2,即不随观察结果X 的变化而变化。

    这样的频率派的观点长期统治着人们的观念,直到后来一个名叫托马斯·贝叶斯Thomas Bayes的出现,发表发表了一篇名为“An essay towards solving a problem in the doctrine of chances”。翻译过来则是:机遇理论中一个问题的解,上篇论文发表后,在当时并未产生多少影响。在20世纪后,大约200年后这篇论文才逐渐被人们所重视,奠定贝叶斯在学术史上的地位。

    托马斯·贝叶斯Thomas Bayes(1702-1763)

    回到上面的样例:“有一个袋子,里面装着若干个白球和黑球,请问从袋子中取得白球的概率θ是多少?”贝叶斯觉得取得白球的概率是个不确定的值,由于当中含有机遇的成分。

    例如:一个朋友创业,你明明知道创业的结果就两种,即要么成功要么失败。但你依旧会忍不住去预计他创业成功的几率有多大?你假设对他为人比较了解,并且有方法、思路清晰、有毅力、且能团结周围的人,你会情不自禁的预计他创业成功的几率可能在80%以上。这样的不同于最开始的“非黑即白、非0即1”的思考方式,便是贝叶斯式的思考方式。

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

    频率派把须要判断的参数θ看做是固定的未知常数。即概率尽管是未知的,但最起码是确定的一个值,样本X是随机的,所以频率派重点研究样本空间,大部分的概率计算都是针对样本X 的分布。

    而贝叶斯派的观点则截然相反。他们觉得参数是随机变量,而样本X是固定的,由于样本是固定的,所以他们重点研究的是参数的分布。

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

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

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

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

    先验信息一般来源于经验跟历史资料。

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

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

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

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

    2 贝叶斯定理

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

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

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

    联合概率表示两个事件共同发生的概率。A与B的联合概率表示为P(A∩B )或者P(A,B)。通过联合分布,我们可以将单随机变量的分布拓展到多随机变量的分布。

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

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

    首先,事件B发生之前。我们对事件A的发生有一个主要的概率判断,称为A的先验概率,用P(A)表示。 P(A)是 A 的先验概率,之所以称为“先验”是因为它不考虑任何 B 方面的因素。

    其次,事件B发生之后,我们对事件A的发生概率又一次评估。称为A的后验概率,用P(A|B)表示。 P(A|B)是已知 B 发生后 A 的条件概率,也由于得自 B 的取值而被称作 A 的后验概率。

    相似的,事件A发生之前,我们对事件B的发生有一个主要的概率判断。称为B的先验概率,用P(B)表示。P(B)是 B 的先验概率,也作标淮化常量(normalizing constant)。 

    相同,事件A发生之后,我们对事件B的发生概率又一次评估,称为B的后验概率。用P(B|A)表示。P(B|A)是已知 A 发生后 B 的条件概率,也由于得自 A 的取值而被称作 B 的后验概率。

    按这些术语,贝叶斯定理可表述为:后验概率 = (相似度 * 先验概率) / 标淮化常量

    也就是说,后验概率与先验概率和相似度的乘积成正比。另外,比例P(B|A)/P(B)也有时被称作标淮相似度(standardised likelihood),Bayes定理可表述为:后验概率 = 标淮相似度 * 先验概率 

    贝叶斯定理公式推导:

    从条件概率公式推出贝叶斯公式

    对离散随机变量用求和得全概率,对连续随机变量用积分得全概率

    3 朴素贝叶斯分类(Naive Bayes Classification)

    贝叶斯分类是一类分类算法的总称,这类算法均以贝叶斯定理为基础,从数据中得到新的信息,然后对先验概率进行更新,从而得到后验概率。朴素贝叶斯法是基于贝叶斯定理与特征条件独立假设的分类方法。

    朴素贝叶斯分类有一个限制条件,就是特征属性必须有条件独立或基本独立(实际上在现实应用中几乎不可能做到完全独立)。当这个条件成立时,朴素贝叶斯分类法的准确率是最高的,但不幸的是,现实中各个特征属性间往往并不条件独立,而是具有较强的相关性,这样就限制了朴素贝叶斯分类的能力。

    朴素贝叶斯分类的“朴素”主要是思想朴素以及假定了所有的属性之间是独立的。贝叶斯分类方法的思想真的很朴素:对于给出的待分类项,求解在此项出现的条件下各个类别出现的概率,哪个最大,就认为此待分类项属于哪个类别。通俗来说,就好比这么个道理,你在街上看到一个黑人,我问你你猜这哥们哪里来的,你十有八九猜非洲。为什么呢?因为黑人在非洲人的比率最高,当然人家也可能是美洲人或亚洲人。但在没有其它可用信息下,我们会选择条件概率最大的类别,这就是朴素贝叶斯的思想基础。

    朴素贝叶斯分类的优势在于不怕噪声和无关变量,因为朴素贝叶斯分类器假设样本每个特征与其他特征都不相关。朴素贝叶斯分类器的一个优势在于只需要根据少量的训练数据估计出必要的参数(离散型变量是先验概率和类条件概率,连续型变量是变量的均值和方差)。

    而贝叶斯网络(Bayesian Network)则放宽了变量无关的假设,将贝叶斯原理和图论相结合,建立起一种基于概率推理的数学模型,对于解决复杂的不确定性和关联性问题有很强的优势。

    对类条件概率P(X|Y)的估计,不同的实现决定不同的贝叶斯分类方法,常见的有朴素贝叶斯分类法和贝叶斯网络。

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

    朴素贝叶斯分类

    现在的关键就是如何计算第3步中的各个条件概率。步骤3用贝叶斯定理来进行求解,具体如下:

    利用贝叶斯来求P(y|x)

    可以看到,整个朴素贝叶斯分类分为三个阶段:

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

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

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

    估计类别下特征属性划分的条件概率及Laplace校准

    1)当时离散值的时候,很容易求解,及频率比就是该先验条件概率P(a|y)

    2)特别说明下,当特征属性为连续值时,通常假定其值服从高斯分布(也称正态分布)。即:

    高斯分布

    连续的先验条件概率

    因此只要计算出训练样本中各个类别此特征项划分的各均值和标准差,代入上述公式即可得到需要的估计值。

    通常假定其值服从高斯分布,也有其他方法

    实例:待预测记录:X={有房=否,婚姻状况=已婚,年收入=120K},是否拖欠贷款?

    数据集

    从该数据集计算得到的先验概率以及每个离散属性的类条件概率、连续属性的类条件概率分布的参数(样本均值和方差)如下:

    离散的先验概率:

    P(Yes)=0.3;P(No)=0.7

    P(有房=是|No) = 3/7 P(有房=否|No) = 4/7

    P(有房=是|Yes) = 0   P(有房=否|Yes) = 1

    P(婚姻状况=单身|No) = 2/7 P(婚姻状况=离婚|No) = 1/7 P(婚姻状况=已婚|No) = 4/7

    P(婚姻状况=单身|Yes) = 2/3 P(婚姻状况=离婚|Yes) = 1/3 P(婚姻状况=已婚|Yes) = 0/3=0 (1/3) 

    年收入(连续值,代入高斯分布求具体的概率):

    如果类=No:样本均值=110; 样本方差=2975

    如果类=Yes:样本均值=90; 样本方差=25

    待预测记录:X={有房=否,婚姻状况=已婚,年收入=120K} :

    Yes情况:P(No)*P(有房=否|No)*P(婚姻状况=已婚|No)*P(年收入=120K|No)=0.7*4/7*4/7* 0.0072=0.0024

    No情况:P(Yes)*P(有房=否|Yes)*P(婚姻状况=已婚|Yes)*P(年收入=120K|Yes)=0.3*1* 0* 1.2*10-9=0

    由于0.0024大于0,所以该记录分类为No。(上面Yes/No的计算严格说不能是具体概率计算)

    从上面的例子可以看出,如果有一个属性的类条件概率等于0,则整个类的后验概率就等于0。仅仅使用记录比例来估计类条件概率的方法显得太脆弱了,尤其是当训练样例很少而属性数目又很多时。解决该问题的方法是使用m估计方法来估计条件概率 

    还有最简单的办法是训练样本集数量充分大直接加个1 

    当P(a|y)=0,即某个类别下某个特征项划分没有出现时,就是产生这种现象。这会令分类器质量大大降低。为了解决这个问题,我们引入Laplace校准,它的思想非常简单,就是对没类别下所有划分的计数加1这样如果训练样本集数量充分大时,并不会对结果产生影响,并且解决了上述频率为0的尴尬局面

    分类器的评价

    分类器的正确率指分类器正确分类的项目占所有被分类项目的比率。 

    通常使用回归测试来评估分类器的准确率,最简单的方法是用构造完成的分类器对训练数据进行分类,然后根据结果给出正确率评估。但这不是一个好方法,因为使用训练数据作为检测数据有可能因为过分拟合而导致结果过于乐观,所以一种更好的方法是在构造初期将训练数据一分为二,用一部分构造分类器,然后用另一部分检测分类器的准确率。

    4 贝叶斯网络(Bayesian Network)

    朴素贝叶斯分类有一个限制条件,就是特征属性必须有条件独立或基本独立(实际上在现实应用中几乎不可能做到完全独立)。当这个条件成立时,朴素贝叶斯分类法的准确率是最高的,但不幸的是,现实中各个特征属性间往往并不条件独立,而是具有较强的相关性,这样就限制了朴素贝叶斯分类的能力。

    贝叶斯分类中更高级、应用范围更广的一种算法—贝叶斯网络(又称贝叶斯信念网络或信念网络)。贝叶斯网络(Bayesian Network),又称信念网络(Belief Network),或有向无环图模型(directed acyclic graphical model),是一种概率图模型,于1985年由Judea Pearl首先提出。

    它是一种模拟人类推理过程中因果关系的不确定性处理模型,其网络拓朴结构是一个有向无环图(DAG)。

    贝叶斯网络的有向无环图中的节点表示随机变量。它们能够是可观察到的变量,或隐变量、未知参数等。

    觉得有因果关系(或非条件独立)的变量或命题则用箭头来连接。

    若两个节点间以一个单箭头连接在一起,表示当中一个节点是“因(parents)”。另一个是“果(children)”,两节点就会产生一个条件概率值。

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

    贝叶斯网络的定义及性质

    贝叶斯网络作为一种不确定性的因果推理模型,其应用范围非常广,在医疗诊断、信息检索、电子技术与工业工程等诸多方面发挥重要作用,而与其相关的一些问题也是近来的热点研究课题。例如,Google就在诸多服务中使用了贝叶斯网络。

    实例SNS社区中不真实账号的检测在那个解决方案中,我做了如下假设:

          i、真实账号比非真实账号平均具有更大的日志密度、各大的好友密度以及更多的使用真实头像。

          ii、日志密度、好友密度和是否使用真实头像在账号真实性给定的条件下是独立的。

    但是,上述第二条假设很可能并不成立。一般来说,好友密度除了与账号是否真实有关,还与是否有真实头像有关,因为真实的头像会吸引更多人加其为好友。因此,我们为了获取更准确的分类,可以将假设修改如下:

          i、真实账号比非真实账号平均具有更大的日志密度、各大的好友密度以及更多的使用真实头像。

          ii、日志密度与好友密度、日志密度与是否使用真实头像在账号真实性给定的条件下是独立的。

          iii、使用真实头像的用户比使用非真实头像的用户平均有更大的好友密度。

          上述假设更接近实际情况,但问题随之也来了,由于特征属性间存在依赖关系,使得朴素贝叶斯分类不适用了,可利用贝叶斯网络来解决。

          下图表示特征属性之间的关联:

    上图是一个有向无环图,其中每个节点代表一个随机变量,而弧则表示两个随机变量之间的联系,表示指向结点影响被指向结点。不过仅有这个图的话,只能定性给出随机变量间的关系,如果要定量,还需要一些数据,这些数据就是每个节点对其直接前驱节点的条件概率,而没有前驱节点的节点则使用先验概率表示。 贝叶斯求出概率

    就使用方法来说,贝叶斯网络主要用于概率推理及决策,具体来说,就是在信息不完备的情况下通过可以观察随机变量推断不可观察的随机变量,并且不可观察随机变量可以多于以一个,一般初期将不可观察变量置为随机值,然后进行概率推理。

    贝叶斯网络的构造及学习

    构造与训练贝叶斯网络分为以下两步:

    1、确定随机变量间的拓扑关系,形成DAG。这一步通常需要领域专家完成,而想要建立一个好的拓扑结构,通常需要不断迭代和改进才可以。

    2、训练贝叶斯网络。通常贝叶斯网络的中存在隐藏变量节点,那么训练方法就是比较复杂,例如使用梯度下降法。

    用于贝叶斯网络的python库--pgmpy  https://github.com/pgmpy/pgmpy#installation

    使用PyMC3中变分推理来拟合一个简单的贝叶斯神经网络

    5 参考

    知乎 怎样用非数学语言讲解贝叶斯定理(Bayes's theorem)? https://www.zhihu.com/question/19725590

    统计学习笔记(4)——朴素贝叶斯法:https://blog.csdn.net/qll125596718/article/details/8445217

    PGM---pgmpy学习:https://blog.csdn.net/ld326/article/details/81480206?utm_source=blogxgwz1

    PyMC3 - 贝叶斯神经网络:https://blog.csdn.net/jackxu8/article/details/71308390

    相关文章

      网友评论

        本文标题:贝叶斯方法、定理、分类、网络

        本文链接:https://www.haomeiwen.com/subject/trdptqtx.html