当抛掷一枚硬币时,前 99 次都为正面,那么第 100 次是正面还是反面?

可能很多人会说:反面,因为连续出现 100 次正面的概率太小了,小到不可思议。

还有很多人会说:正反面的几率各二分之一,因为从数学上说,每次的结果都是独立的。

人们热衷于找到与常识、经验相符的解释。但这对于我们了解周围的世界来说,往往是种糟糕的方式。

当抛掷一枚硬币时,前 99 次都为正面,第 100 次是正面还是反面?答案很可能是:还是正面。

因为,前 99 次全是正面的情况,很有可能说明:这枚硬币只有正面。

而这种思想,就是统计学上大名鼎鼎的「贝叶斯方法」。伟大的经济学家、思想家 John Maynard Keynes 曾说过:“当事实改变,我的观念也在改变,你呢?”这句名言很直观地说明了贝叶斯学派思考事务的方式:

随着证据的改变而更新自己的想法与信念。即使证据和我们的常识相反,我们也不能忽视证据。

在今天,贝叶斯方法已经成为统计学、数据分析、机器学习中非常重要的一部分,只要你翻阅过机器学习的相关教程,一定会见到这个方法。

但是传统的贝叶斯推断涉及到复杂的数学分析,对没有雄厚的数学功底的同学来说,非常不友好。所以今天,我们就用 Python 中 PyMC 库,以一种简单、容易理解的方式讲解贝叶斯方法。

以下内容来自实验楼课程——「贝叶斯方法数据分析实战」,课程中使用了大量的实际案例,来帮助同学们理解和学习贝叶斯方法。欢迎大家来实验楼边敲代码边学习~

课程地址:

https://www.shiyanlou.com/courses/1520


第一节:贝叶斯理论

何为贝叶斯推断?

还记得我们是如何调试程序的 bug 的吗?

即使我们编程技巧娴熟,也无法保证自己所写的代码毫无 bug。因此,在实现一个复杂的算法之前,我们一般会先用一个简单的测试用例来进行测试。如果测试用例通过,我们才会将其应用在复杂的问题上。然后,再用一个复杂的测试用例进行测试,如果通过,我们就可以把它用在更加复杂的测试用例上……

这样一步一步的测试,我们才能渐渐的相信我们的代码没有 bug。

如果以前你按照过这样的思路思考自己的代码,那么恭喜你。你已经是在使用贝叶斯的思路思考问题了。

简单的来说,贝叶斯的思路其实就是不断地考虑新的证据来坚定自己的信念。因此,利用贝叶斯解决问题是很难得到一个准确的结果的。但是,这种方法却可以不断增强你的自信率。就像刚才所举的例子一样,我们永远不可能保证我们的代码没有一丝 bug ,除非我们把所有的可能的问题都进行了测试(这在实际操作中是不可能实现的)。但是,我们可以对代码进行大量的测试,如果这些案例都通过了,我们就可以很有把握的说,这段代码没有问题。

这就是贝叶斯推断,我们可以通过更多新的的证据来坚定我们的信念,但是我们很少能够做出非常绝对的判断。

贝叶斯推断与传统统计推断

贝叶斯推断与其他传统统计推断的不同之处在于其保留了“不确定性”。

这听起来像是一种很差的统计技术。统计不应该是一种从“随机性”中得出“确定性”的方法吗?

为了更好的理解这个问题,让我们来解释一下贝叶斯学派思考问题的方式。

传统的统计学派,频率派,认为概率是事件在长时间内发生的频率。例如,在频率学派眼中,飞机发生事故的概率指的是,飞机事故的频率值。对于很多事件来说,这种解释是合理的。但是,对于某些没有长期频率的事件来说,这种解释就有点差强人意了。例如,在总统选举时,我们常说某某候选人获选的概率。但是,一个人获选总统的事件只会发生一次,我们无法用频率来估算这种事件的概率。

而贝叶斯学派对于概率的解释是,对某个事件发生的信心。如果,某人把 0 赋给某个事件,则表示他相信这个事件绝对不会发生。如果他将 1 赋给某个事件,则表示他相信这个事件必定发生。0− 1 之间的其它值,可以表示他相信该事件发生的程度。当然这种概率的定义在一定时候也可以和频率产生联系。比如,在除却所有外部信息的情况下,一个人对飞机失事的信心应该等同于他所了解到的飞机发生事故的频率。但是,在表示总统选举时,贝叶斯的概率定义方法则更有意义,它表示你对选举人 A 获胜的信心有多少。

这样定义有一个好处,就是每一个人都能够给同一个事件赋予不同的概率值。这是非常符合实际。因为人与人之间是有差异的,不同人对同一个事件是否发生的信心应该是不同的。虽然概率不同,但这并不代表着他们中有人错,有人对。下面的这些例子就详细的阐述了,人对事件发生的信心与概率之间的关系:

  • 在抛一个没有被动过手脚的硬币时大家都知道硬币为正或反的概率都是 0.5。但是,假设你预先偷看了结果,知道下次一定为正面。那么这个时候,你认为硬币为正面的概率是多少?显然,你的预先偷看,并不能改变硬币的实际结果,但这使得你对结果赋予的概率值不同了。

  • 一个病人表现出了 x,y,z 三种症状,但是有很多疾病都会表现出这三种症状。因此不同的医生,可能会因为经验的不同,而对何种疾病导致的这些症状的见解不同。

为了能够更好的和传统概率术语对齐,我们把对事件 A 发生的信心记作 P(A),称作先验概率

伟大的经济学家、思想家 John Maynard Keynes 说过,“当事实改变,我的观念也在改变,你呢?”。这句名言很直观的说明了贝叶斯学派思考事务的方式。随着证据的改变而更新自己的想法与信念。即使证据和我们初始的信念相反,我们也不能忽视证据。

受篇幅和微信的排版限制,后续的课程内容,欢迎大家在实验楼边敲代码边学习~

后面你还将学习到:

  • 价格竞猜游戏最佳策略选取

  • 金融股票决策

  • 暗物质光晕位置预测

  • 多臂老虎机策略选择

  • ……

欢迎大家通过实战,来加深对贝叶斯方法的理解。

????????????点击阅读原文,学习完整课程内容~

贝叶斯方法指北|连丢 99 次硬币都为正面,那第 100 次是正面还是反面?相关推荐

  1. 独家 | 为什么要尝试A/B测试的贝叶斯方法(附链接)

    作者:Michael Armanious 翻译:欧阳锦 校对:阿笛 本文约3400字,建议阅读8分钟 本文通过一个A/B测试的实例,介绍了贝叶斯方法的各种优点和具体的实现方法,同时也将贝叶斯推断方法与 ...

  2. 转:数学之美番外篇:平凡而又神奇的贝叶斯方法 收藏

    为什么80%的码农都做不了架构师?>>>    转自:http://blog.csdn.net/pongba/archive/2008/09/21/2958094.aspx 数学之美 ...

  3. 详解机器学习的凸优化、图神经网络、强化学习、贝叶斯方法等四大主题

    AI是一门入门简单,但想深入却很难的学科,这也是为什么AI高端人才一直非常紧缺的重要原因.在AI领域技术领域,我们可以说机器学习功底决定了一个人的上限也不为过.为什么?机器学习就像物理学中的数学,如果 ...

  4. 数学之美番外篇:平凡而又神奇的贝叶斯方法(转自刘未鹏)

    概率论只不过是把常识用数学公式表达了出来. --拉普拉斯 记得读本科的时候,最喜欢到城里的计算机书店里面去闲逛,一逛就是好几个小时:有一次,在书店看到一本书,名叫贝叶斯方法.当时数学系的课程还没有学到 ...

  5. 贝叶斯方法的思想基础

    进军概率深度学习的第一步,首先要弄清楚什么是贝叶斯深度学习. 而贝叶斯深度学习的基础是要搞明白贝叶斯的思想到底是个什么思想. 首先给出老生常谈的贝叶斯公式: 各种生动形象的例子就不自己想了,这里引用知 ...

  6. 贝叶斯方法与连续值离散化

    https://www.toutiao.com/a6701998782122295819/ 奇技指南 实际算法工作中,需要经常处理特征值为连续值,而目标变量为可数属性的情况.这时, 将特征变量进行离散 ...

  7. 《统计学习方法》—— 朴素贝叶斯方法、详细推导及其python3实现(二)

    前言 在上一篇博客中,我们介绍了朴素贝叶斯方法以及详细推导.在这篇博客中,我们将介绍朴素贝叶斯的python3实现代码. 这里,我们将算法复述如下: 输入:数据集 T={(x1,y1),(x2,y2) ...

  8. 《统计学习方法》—— 朴素贝叶斯方法、详细推导及其python3实现(一)

    前言 朴素贝叶斯方法通过构造数据生成分布来预测未知数据的类型,属于生成模型.这里之所以称为"朴素",是因为我们假设数据特征之间具有互相独立的假设. 在这篇博客里,我们将介绍朴素贝叶 ...

  9. 贝叶斯方法学习笔记(二)

    贝叶斯方法学习笔记(二) 原文来自于知乎<你一定从未看过如此通俗易懂的马尔科夫链蒙特卡洛方法解读>.在这里只是将文章主要的核心知识点进行提炼汇总. 链接:你一定从未看过如此通俗易懂的马尔科 ...

最新文章

  1. Grunt的配置和使用
  2. 28、OSPF配置实验之负载均衡
  3. 列表的定义、索引、添加、删除、查找、排序
  4. js怎么调用wasm_对于WebAssembly编译出来的.wasm文件js如何调用
  5. LeetCode 522. 最长特殊序列 II
  6. 2016,你最不应该错过的热门技术文章
  7. 梯度下降法和最速下降法的细微差别
  8. C++STL标准模板库容器详细实现算法代码
  9. BZOJ_1003_[ZJOI2006]_物流运输_(动态规划+最短路)
  10. 是新最全Git命令大全及速记图
  11. 利用JNI调用c++函数
  12. pm2.5计算和单位换算
  13. 学习笔记 Tianmao 篇 fresco 图片缓存加载框架
  14. Symbol的基本使用
  15. 计算机如何用vb文本加密,怎么样用VB编写一个文件加密程序
  16. 2022 年牛客多校第五场补题记录
  17. 2021-2027全球及中国G Suite销售软件行业研究及十四五规划分析报告
  18. docker 磁盘满了问题排查
  19. 数据仓库之数据质量监控
  20. DNS服务器配置:DNS服务器配置:正反解析,主从服务器,子域授权,

热门文章

  1. 椭圆曲线介绍(三):椭圆曲线密码学,ECDH和ECDSA
  2. 百度直播的海量用户实时消息系统架构演进实践
  3. 100天学会VR游戏开发
  4. 机械专业与计算机结合的论文,机械类工程师论文范文
  5. 为您的零件选择合适的机器人机械手夹爪
  6. centos7安装tomcat步骤
  7. 渐进式网络应用程序(PWA)与服务端渲染(SSR)
  8. K线形态识别_三只乌鸦(暴跌三杰)
  9. calcHist()函数 OPENCV
  10. 【Python】Python 实现破零(ZF)和最小均方误差(MMSE)信道均衡