传说中的贝叶斯统计到底有什么来头?

全世界有3.14 % 的人已经关注了

数据与算法之美


贝叶斯统计在机器学习中占有一个什么样的地位,它的原理以及实现过程又是如何的?本文对相关概念以及原理进行了介绍。


引言:在很多分析学者看来,贝叶斯统计仍然是难以理解的。受机器学习这股热潮的影响,我们中很多人都对统计学失去了信心。我们的关注焦点已经缩小到只探索机器学习了,难道不是吗?


机器学习难道真的是解决真实问题的唯一方法?在很多情况下,它并不能帮助我们解决问题,即便在这些问题中存在着大量数据。从最起码来说,你应该要懂得一定的统计学知识。这将让你能够着手复杂的数据分析问题,不管数据的大小。


在18世界70年代,Thomas Bayes提出了“贝叶斯理论”,即便在几个世纪后,贝叶斯统计的重要性也没有减弱。事实上,世界上那些最优秀的大学都在教授有关这个话题的深度课程。

640?wx_fmt=jpeg


在真正介绍贝叶斯统计之前,首先来了解下频率统计这个概念。


1. 频率统计


有关频率统计和贝叶斯统计的争论以及持续了好几个世纪,因此对于初学者来说理解这两者的区别,以及如何划分这两者十分重要。


它是统计领域中应用最为广泛的推理技术。事实上,它是初学者进入统计学世界中的第一所学校。频率统计检测一个事件(或者假设)是否发生,它通过长时间的试验计算某个事件发生的可能性(试验是在同等条件下进行的)


在此处,使用固定大小的采样分布作为例子。然后该实验理论上无限次重复的,但实际上是带着停止的意图的。例如当我脑海中带着停止的意图时,它重复1000次或者在掷硬币过程中我看到最少300词头在上的话,我将停止进行实验。现在让我们进一步了解:


通过掷硬币的例子我们就会明白频率统计,目的是估计抛硬币的公平性,下表是代表抛硬币过程中头在上的次数:


640?wx_fmt=jpeg


我们知道在公平的掷硬币过程中得到一个头在上的那概率为0.5。我们使用No. of heads表示所得头在上的实际数量。Difference表示0.5*(No. of tosses) 与 no. of heads之间的差别。


要注意的是,虽然投掷的数量增加时,头在上的实际数量和头在上的预期数(抛掷数目的50%)之间的差异会逐渐增大。但是以抛掷的总数来说,头在上出现的比例接近0.5(一个公平的硬币)


该实验中我们在频率方法中发现了一个很常见的缺陷:实验结果的独立性与实验次数是重复的。


2. 频率统计的内在缺陷


到这里,我们开始来探讨频率统计的缺陷:


在20世纪有大量的频率统计被应用到许多模型中来检测样本之间是否不同,一个参数要放在模型和假设检验的多种表现中足够重要。但是频率统计在设计和实现过程存在一些重大缺陷,这些在现实中的问题引起相当大的关注。例如:


1. p-values 对固定大小的样本进行检测。如果两个人对相同的数据工作,并有不同的制动意向,他们可能会得到两种不同的p- values。


2. 置信区间(CI)和p-value一样,在很大程度上取决于样本的大小。因为无论多少人如何执行相同的数据测试,其结果应该是一致的。


3. 置信区间(CI)不是概率分布,因此它们不提供最可能的值以及其参数。

这三个理由足以让你对于频率统计的缺陷进行思考,以及对为什么需要贝叶斯方法进行考虑。


有关贝叶斯统计的基础知识就先了解到这里。


3.贝叶斯统计


“贝叶斯统计是将概率运用到统计问题中的数学过程。它提供给人们工具来更新数据中的证据。”要更好的理解这个问题,我们需要对于一些概念要有所认识。此外,也需要有一定的前提:


线性代数


概率论与数基本统计


3.1条件概率


条件概率被定义为:事件A中给定事件B的概率等于B和A一起发生的概率再除以B的概率


例如:如下图所示设两部分相交集A和B


640?wx_fmt=jpeg


集合A代表一组事件,集合B代表了另一组。我们希望计算给定B的概率已经发生了的概率,让我们用红色代表事件B的发生。


现在,因为B已经发生了,现在重要的A的部分是在蓝色阴影部分。如此,一个给定的B的概率是:


640?wx_fmt=gif


因此,事件B的公式是:


640?wx_fmt=gif


要么


640?wx_fmt=gif


现在,第二方程可以改写为:


640?wx_fmt=gif


这就是所谓的条件概率。


假设,B是James Hunt的中奖事件,A是一个下雨的事件。因此,


P(A)= 1/2,由于每俩天都会下一次雨。


P(B)为1/4,因为詹姆斯每四次比赛只赢一次。


P(A | B)= 1,因为每次下雨James都赢。


条件概率公式中代入数值,我们得到的概率在50%左右,这几乎是25%的两倍(下雨的情况不考虑)。


也许,你已经猜到了,它看起来像贝叶斯定理


贝叶斯定理建立在条件概率的顶部,位于贝叶斯推理的心脏地区。


3.2 贝叶斯定理


下图可以帮助理解贝叶斯定理:


640?wx_fmt=jpeg


现在,B可被写为


640?wx_fmt=gif


因此,B的概率可以表示为,


640?wx_fmt=gif


640?wx_fmt=gif


因此,我们得到


640?wx_fmt=gif


这就是贝叶斯定理方程。


4.贝叶斯推理



让我们从抛硬币的例子来理解贝叶斯推理背后的过程:


贝叶斯推理中一个重要的部分是建立参数和模型。


模型观察到的事件的数学公式,参数是在模型中影响观察到数据的因素。例如在掷硬币过程中,硬币的公平性 可以被定义为θ——表示硬币的参数。事件的结果可以用D表示


4个硬币头朝上的概率即给定硬币(θ)的公平性,即P(D|θ)


让我们用贝叶斯定理表示:


P(θ|D)=(P(D|θ) X P(θ))/P(D)


P(D|θ) 是考虑到我们给定分布θ时,我们结果的可能性。如果我们知道硬币是公平的,这就是观测到的头朝上的概率。


P(D)就是证据,这是因为通过在θ的所有可能的值,是θ的那些特定值加权求和(或积分)确定的数据的概率。


如果我们的硬币的公正性是多个视图(但不知道是肯定的),那么这告诉我们看到翻转的一定顺序为我们在硬币的公平信念所有可能性的概率。


P(θ|D) 是观察,即头在上数目之后我们的参数。


4.1 伯努利近似函数


回顾让我们了解了似然函数。所以,我们得知:


它是观察翻转为硬币的一个给定的公平的特定数目的磁头的特定数目的概率。这意味着我们的观察头概率/万尾取决于硬币(θ)的公平性。


P(y=1|θ)= 


640?wx_fmt=gif


[如果硬币是公平的θ= 0.5,观察到头的概率(Y = 1)为0.5]


P(y=0|θ)=


640?wx_fmt=gif


 [如果硬币是公平的θ= 0.5,观察到尾部的概率(Y = 0)为0.5]


值得注意的是,1为头和0为尾是一个数学符号制定的典范。我们可以将上述数学定义结合成一个单一的定义来表示两者的结果的概率。


P(Y |θ)= 


640?wx_fmt=gif


这就是所谓的伯努利近似函数,抛硬币的任务被称为伯努利试验。


y={0,1},θ=(0,1)


而且,当我们想看到一系列的头或翻转,它的概率为:


640?wx_fmt=gif

640?wx_fmt=gif

此外,如果我们感兴趣的是头的数目的概率ž在卷起Ñ数翻转下的情况,则概率如下所示:


640?wx_fmt=gif


4.2 前置信度分布


这个分布用于表示关于基于以往的经验,我们的参数分布情况。


但是,如果一个人没有之前的经验呢?


不用担心,数学家们想出了方法来缓解这一问题。它被认为是uninformative priors。


那么,用来表示先验数学函数称为beta distribution, 它有一些非常漂亮的数学特性,使我们对建模有关二项分布有所了解。


Beta分布的概率密度函数的形式为:


640?wx_fmt=gif


在这里,我们的焦点停留在分子上,分母那里只是为了确保整合后的总概率密度函数的计算结果为1。


α和 β被称为形状决定密度函数的参数。这里α类似于试验中出现头的数量,β对应于实验中尾的数量。下图将帮助您想象不同值中 α和 β的测试分布


640?wx_fmt=jpeg

你也可以使用R中的代码绘制自己的Beta分布:

> library(stats)
> par(mfrow=c(3,2))
> x=seq(0,1,by=o.1)
> alpha=c(0,2,10,20,50,500)
> beta=c(0,2,8,11,27,232)
> for(i in 1:length(alpha)){
y<-dbeta(x,shape1=alpha[i],shape2=beta[i])
plot(x,y,type=”l”)
}


注: α和β是直观的理解,因为它们可以通过已知的平均值(μ)和分布的标准偏差(σ)来计算。实际上,它们是相关的:


640?wx_fmt=gif

640?wx_fmt=gif


如果分发的平均值和标准偏差是已知的,那么有形状参数可以容易地计算出来。


从上面的图表可以推理出:


当没有抛掷的时候,我们认为硬币的公平性可以通过一条平滑的线来描绘。


当头比尾部出现的更多时,图中显示的峰值向右一侧移动,表明头出现的可能性较大,以及硬币是不公平的。


随着越来越多的抛掷动作完成后,头所占比重较大的峰值变窄,增加了我们对硬币抛掷公正性的信心。


4.3 后置信度分布


我们选择之前所相信的原因是为了获得一个β分布,这是因为当我们用一个近似函数相乘,后验分布产生类似于现有分配,这是很容易涉及到和理解的形式。


使用贝叶斯定理进行计算


640?wx_fmt=gif

640?wx_fmt=gif

640?wx_fmt=gif


之间的公式变为


640?wx_fmt=gif


只要知道的平均值和我们的参数标准发布  θ,并通过观察头的N翻转,可以更新我们对模型参数的(θ)。


让我们用一个简单的例子来理解这一点:


假设,你认为一个硬币有失偏颇。它具有为0.1的标准偏差,约0.6的平均(μ)偏差。


然后 ,α= 13.8 , β=9.2


假设你观察到80次头在上(z=80在100翻转中)( N=100)。则

prior = P(θ|α,β)=P(θ|13.8,9.2)


Posterior = P(θ|z+α,N-z+β)=P(θ|93.8,29.2)


将其图像化:

640?wx_fmt=jpeg

上述图中的R代码实现过程是:


> library(stats)
> x=seq(0,1,by=0.1)
> alpha=c(13.8,93.8)
> beta=c(9.2,29.2)
> for(i in 1:length(alpha)){
y<-dbeta(x,shape1=alpha[i],shape2=beta[i])
plot(x,y,type=”l”,xlab = “theta”,ylab = “density”)

}


随着越来越多的翻转被执行,以及新的数据观察到,我们能进一步得到更新,这是贝叶斯推理的真正力量。


5. 测试意义——频率论VS贝叶斯


无需使用到严格的数学结构,这部分将提供不同的频率论和贝叶斯方法预览。相关的简要概述,以及测试组哪种方法最可靠,和它们的显着性和差异性。


5.1 p值


针对特定样本的t分和固定大小样本中的分布是计算好的,然后p值也被预测到了。我们可以这样解释p值:(以p值的一例0.02均值100的分布):有2%的可能性的样品将具有等于100的平均值。


这种解释说明从取样不同尺寸的分布,人们势必会得到不同的T值,因此不同的p值的缺陷受到影响。p值小于5%并不能保证零假设是错误的,也没有p值大于5%确保零假设是正确的。


5.2 置信区间


置信区间也有同样的缺陷,此外因CI不是一个概率分布,没有办法知道哪些值是最有可能的。


5.3 贝叶斯因子


贝叶斯因子是p值在贝叶斯框架等价量。


零假设在贝叶斯框架:仅在一个参数的特定值(例如θ= 0.5)和其他地方零概率假定∞概率分布。(M1)


另一种假设是θ的所有值都是可能的,因此代表分布曲线是平坦的。(M2)

现在,新数据的后验分布如下图所示。


640?wx_fmt=jpeg


θ的各种值代表贝叶斯统计调整可信度(概率)。可以很容易地看出,概率分布已经转向M2具有更高的值M1,即M2更可能发生。


贝叶斯因子不依赖于θ的实际分配值,但在M1和M2的值幅度间移位。


在面板A(上图所示):左边栏是零假设的先验概率。


在图B(上图所示),左边栏是零假设的后验概率。


贝叶斯因子被定义为后验概率的对现有的进行对比:


640?wx_fmt=gif


要拒绝零假设,BF <1/10是首选。


我们可以看到使用贝叶斯因子代替p值的好处,它们具有独立的意图和样本量。


5.4 高密度间隔(HDI)


HDI由后验分布观察新数据形成,由于HDI是一个概率,95%的HDI给出95%的最可信的值。它也保证了95%的值将处于不同的CI区间。


请注意,前95%的HDI比95%后验分布更广泛,这是因为我们在HDI中增加了对新数据的观察。


640?wx_fmt=jpeg


总结:贝叶斯统计作为一个基础算法,在机器学习中占据重要的一席之地。特别是在数据处理方面,针对事件发生的概率以及事件可信度分析上具有良好的分类效果。推荐阅读《程序员的数学2:概率统计》。


来源:程序师

编辑:ys


640?wx_fmt=png精品课程推荐:

640?wx_fmt=png

640?wx_fmt=png

选购数学科普正版读物

严选“数学思维好物”

送给孩子的益智礼物   |   办公室神器

算法工程师成长阅读   |   居家高科技

理工科男女实用型礼物精选   

640?wx_fmt=png


640?wx_fmt=png

640?wx_fmt=png

640?wx_fmt=jpeg

640?wx_fmt=jpeg


数据与算法之美

用数据解决不可能


640?wx_fmt=jpeg


长按扫码关注


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/302678.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

更新两个WPF开源项目

前言好久没更新博客了&#xff0c;最近准备重拾博客&#xff0c;将更新恢复起来。开源项目这些年零零散散做了很多项目&#xff0c;准备整理一下&#xff0c;将其开源&#xff0c;现整理了两个项目&#xff1a;绑定引擎&#xff08;BindingEngine&#xff09;&#xff0c;插件式…

OpenGL ES 3D 粒子系统小结

2019独角兽企业重金招聘Python工程师标准>>> 所谓粒子系统可以想象为一堆粒子由一个点或一个面按照一定的规律进行喷射。 粒子系统大致分为2类&#xff1a;一类为“点喷式”&#xff0c;一类为“面喷式”。可以想象前者由一个点进行喷射&#xff0c;类似于焰火&…

理科生用创意毁灭世界,爆笑!

全世界有3.14 % 的人已经关注了数据与算法之美1、青年问禅师&#xff1a;“大师&#xff0c;我很爱我的女朋友&#xff0c;她也有很多优点&#xff0c;但是总有几个缺点让我非常讨厌&#xff0c;有什么方法能让她改变&#xff1f;”禅师浅笑&#xff0c;答&#xff1a;“方法很…

我的C#/.NET学习诀窍——LINQPad

在我以往的文章中&#xff0c;尤其涉及代码演示的&#xff0c;都使用了同一个工具——LINQPad。但许多客户面对我分享的.linq源文件都迷茫不知所措&#xff0c;因此有必要来聊聊一下这个强大的工具。本文首先将对该工具做个简单的介绍&#xff0c;并且分享一些LINQPad的优点&am…

数学在生活中无处不在,36个生活小故事涵盖小学所有的数学知识!

数学不是脱离生活的&#xff0c;而是源于生活&#xff0c;更要回归于生活。解决生活中遇到的问题&#xff0c;就是最自然的数学应用题。生活场景中的学习&#xff0c;是最生动的体验式学习机会。用学到的数学知识来解决生活中的问题&#xff0c;正是孩子体会数学奥妙的绝佳机会…

面试八股文:你写过自定义任务调度器吗?

最近入职了新公司&#xff0c;尝试阅读祖传代码&#xff0c;记录并更新最近的编程认知。思绪由Q1引发&#xff0c;后续Q2、Q3基于Q1的发散探究Q1. Task.Run、Task.Factory.StartNew 的区别&#xff1f;我们常使用Task.Run和Task.Factory.StartNew创建并启动任务&#xff0c;但是…

快速掌握MATLAB应用,从这一步开始

有人说&#xff0c;“MATLAB除了不会生孩子&#xff0c;什么都会。”矩阵运算、数据可视化、GUI&#xff08;用户界面&#xff09;设计、甚至是连接其他编程语言&#xff0c;MATLAB都能轻松实现&#xff01;那么&#xff0c;MATLAB到底有多厉害&#xff1f;MATLAB拥有丰富的算法…

mobile.php discuz,电脑访问discuz手机版【触屏版跳转标准版的修改方法】

推荐方法&#xff1a;以前我们介绍过如何通过修改Chrome浏览器运行参数的方法来模拟手机访问网站&#xff0c;但是在Chrome 32和33版本以后增加了更加便捷的方法&#xff0c;在开发者工具中只需要设置一下就能方便的模拟各种手机型号的访问效果了。方法如下&#xff1a;1、打开…

深入探究ASP.NET Core读取Request.Body的正确方式

前言相信大家在使用ASP.NET Core进行开发的时候&#xff0c;肯定会涉及到读取Request.Body的场景&#xff0c;毕竟我们大部分的POST请求都是将数据存放到Http的Body当中。因为笔者日常开发所使用的主要也是ASP.NET Core所以笔者也遇到这这种场景&#xff0c;关于本篇文章所套路…

追MM的各种算法

全世界有3.14 % 的人已经关注了数据与算法之美动态规划基本上就是说&#xff1a;你追一个MM的时候&#xff0c;需要对该MM身边的各闺中密友都好&#xff0c;这样你追MM这个问题就分解为对其MM朋友的问题&#xff0c;只有把这些问题都解决了&#xff0c;最终你才能追到MM。因此&…

ML.NET 示例:对象检测

ML.NET 版本API 类型状态应用程序类型数据类型场景机器学习任务算法v1.4动态API最新控制台应用程序图像文件对象检测深度学习Tiny Yolo2 ONNX 模型有关如何构建此应用程序的详细说明&#xff0c;请参阅Microsoft Docs网站上附带的教程。问题对象检测是计算机视觉中的一个经典问…

双十一来了,揭秘菜鸟物流背后的那些算法黑科技

又是一年双十一&#xff0c;又一个巨大的挑战摆在了包括菜鸟网络在内的物流面前&#xff0c;但随着人工智能、大数据的应用越来越广泛&#xff0c;无人化仓储、无人化配送越来越多&#xff0c;供应链越来越扁平化&#xff0c;各种算法应用到物流领域的每一个细节。那么&#xf…

开源推荐:Asp.Net Core入门学习手册!

前言推荐一个入门级的.NET Core开源项目&#xff0c;非常适合新手入门学习.NET Core。开源地址:https://github.com/windsting/little-aspnetcore-book。手册在线下载地址&#xff1a;https://nbarbettini.gitbooks.io/little-asp-net-core-book/content/chapters/mvc-basics/c…

如何拿到高薪数据分析师offer?从精准解读一篇招聘信息开始!

大家好&#xff0c;我是大鹏&#xff0c;目前是一名数据分析师&#xff0c;从非本专业成功转行&#xff0c;创立“数据团学社”“城市数据研习社”&#xff0c;运营数十万人社群&#xff0c;联合发起“城市数据团”。最近有很多学弟学妹咨询我入行数据分析师的情况。总体上说&a…

微软翻译api的使用介绍和注意事项

google翻译api已经收费了&#xff0c;而微软翻译api目前是免费的&#xff0c;支持几种不同的方式访问&#xff0c;如果感兴趣可以自己封装下协议处理。官方介绍&#xff1a; http://msdn.microsoft.com/en-us/library/hh454950.aspx。 这里介绍一下java下的使用。Java下使用微软…

linux备份文件到ftp上,Linux服务器下用FTP上传下载备份文件

从linux服务器批量上传/home/test文件夹里面文件到FTP(192.168.1.122)里面wwwroot目录##shell脚本如下&#xff1a;updir/home/testtodirwwwrootip192.168.1.122usertestpasswordtest123123sssfind $updir -type d -printf $todir/’%P\n’| awk ‘{if ($0 “”)next;print “…

为什么不能除以零?

全世界有3.14 % 的人已经关注了数据与算法之美如果你问苹果手机上的Siri&#xff0c;“零除以零等于多少”&#xff0c;它会显示&#xff1a;但是&#xff0c;英文版的Siri还会用语音说这一段话&#xff1a;“假如你有0块饼干&#xff0c;要分给0个朋友&#xff0c;每个人能分到…

设计模式之Builder

2019独角兽企业重金招聘Python工程师标准>>> Builder模式定义&#xff1a; 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示. Builder模式是一步一步创建一个复杂的对象,它允许用户可以只通过指定复杂对象的类型和内容就可以构建它们…

linux kvm系统,linux kvm虚拟机安装以及主机配置支持有哪些?如何远程控制linux kvm系统?...

服务器安装kvm的时候&#xff0c;如果没有安装桌面(一般不会安装&#xff0c;节省资源)&#xff0c;就需要使用命令去创建虚拟机。要支持 KVM&#xff0c;Intel CPU需要 vmx 或者 AMD CPU 需要svm 扩展。在linux系统上使用kvm虚拟化系统需要对主机开启虚拟化,并做一些基础设置,…

C# 答群友:把窗体应用改成类库输出然后去引用

类库你就新建类库文件直接生成dll去引用好了&#xff0c;但是群友非要骚操作&#xff0c;新建一个windows窗体把他搞成dll去引用&#xff0c;当时我回答了这个问题是可以的&#xff0c;但是实际上我没有这么干过&#xff0c;今天恰好有空&#xff0c;体验了一把&#xff0c;的确…