没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
2014-7-15
作者:钟超
Probabilistic Programming and
Bayesian Methods for Hackers
概率编程和贝叶斯方法实践
1
Probabilistic Programming and Bayesian Methods for Hackers
| 2014/7/15
Probabilistic Programming and Bayesian Methods for Hackers
目录
第 1 章 贝叶斯方法原则及概率编程初步 ................................................................. 3
1.1 贝叶斯推断的哲学意义 .................................................................................. 3
1.2 贝叶斯思维方式 ............................................................................................ 3
1.3 贝叶斯推断在实际中的应用 ........................................................................... 3
1.4 频率论者的方法错了吗 ................................................................................. 4
1.5 我们的贝叶斯框架 ......................................................................................... 4
1.6 示例 ............................................................................................................. 4
1.6.1 抛硬币实验 ............................................................................................. 4
1.6.2 BUG, OR JUST SWEET, UNINTENDED FEATURE? ...................................................... 6
1.6.3 概率分布 ................................................................................................ 8
1.6.4 从短信中推断行为 ................................................................................. 11
1.6.5 第一个分析工具:PYMC ......................................................................... 13
1.6.6 相关解释 .............................................................................................. 16
1.6.7 为什么要对后验概率进行采样 ................................................................ 16
REFERENCES ....................................................................................................... 18
第 2 章 PYMC 实战 ............................................................................................... 19
2.1 PYMC 语法介绍 ............................................................................................ 19
2.1.1 父子关系 .............................................................................................. 19
2.1.2 PYMC 变量 ............................................................................................ 19
2.1.3 设置观测量 ........................................................................................... 22
2.1.4 建模方法 .............................................................................................. 23
2.1.5 同样的故事,不同的结果 ...................................................................... 24
2.2 示例 ........................................................................................................... 25
2.2.1 贝叶斯 A/B 测试 .................................................................................... 25
2.2.2 学生作弊 .............................................................................................. 31
2.2.3 挑战者号航天飞机灾难 .......................................................................... 34
2.3 REFERENCES ................................................................................................... 45
第 3 章 马尔科夫蒙特卡洛方法及其使用 ............................................................... 48
3.1 贝叶斯方法 ................................................................................................. 48
3.2 MCMC 奇幻之旅 .......................................................................................... 52
3.3 MCMC 技术 ................................................................................................. 53
3.4 其它近似的后验概率求解方法 ...................................................................... 54
3.4 示例:无监督的混合模型聚类 ...................................................................... 54
3.4.1 对同一类别数据进行研究 ...................................................................... 58
3.4.2 不要混合后验样本 ................................................................................. 61
3.4.3 用 MAP 改善收敛 ................................................................................... 62
3.4.4 对收敛性进行讨论 ................................................................................. 63
3.4.5 对数据样本进行稀释 ............................................................................. 65
2
Probabilistic Programming and Bayesian Methods for Hackers
| 2014/7/15
3.4.6 智能选择初值 ....................................................................................... 67
3.5 结论 ........................................................................................................... 68
3.6 REFERENCES ................................................................................................... 68
第 4 章 大数定理 ................................................................................................. 69
4.1 大数定理 .................................................................................................... 69
4.1.1 大数定理计算均值 ................................................................................. 69
4.1.2 如何计算 ...................................................................................... 72
4.1.3 期望值和概率 ....................................................................................... 72
4.1.4 贝叶斯方法的处理方式 .......................................................................... 72
4.2 混乱的“小数” .......................................................................................... 73
4.2.1 地理学数据分析 .................................................................................... 73
4.2.2 调整 KAGGLE 的人口普查回报率 .............................................................. 75
4.2.3 如何对红迪网的评论排序 ...................................................................... 76
4.2.4 统计 GITHUB 得分 ................................................................................... 85
4.3 结论 ........................................................................................................... 86
4.4 附录 ........................................................................................................... 86
4.5 REFERENCES ................................................................................................... 87
第 5 章 损失函数 ................................................................................................. 89
5.1 损失函数 .................................................................................................... 89
5.2 现实中的损失函数 ....................................................................................... 90
第 6 章 先验知识 ................................................................................................. 92
3
Probabilistic Programming and Bayesian Methods for Hackers
| 2014/7/15
第 1 章 贝叶斯方法原则及概率编程初步
1.1 贝叶斯推断的哲学意义
如果你按照上面的描述中思考问题,恭喜你,你已经是个贝叶斯者了!贝叶斯推断
过程就是通过观察新发生的现象,来更新某一事件能否发生的可信度(例如开发出的算
法无 bug 的可信度有多高?由于算法一次次的通过了测试,所以算法无 bug 的可信度就
逐渐很高)。贝叶斯方法很少对结果给出确定性答案,但是他给的答案却很值得相信。
就像在上面的例子中,我们无法确定算法 100%无 bug,除非把所有可能的情况都测试一
遍,在实际当中这是无法实现的。然而,我们可以在相对大量的可能情况下进行测试,
如果测试结果都无误,即使无法确认算法一定准确无误,我们也会对自己的算法很有信
心,随着新的测试结果出现,算法无误的可信度也在逐渐改变。总之,由于无法穷举所
有可能性,贝叶斯推断基本上不能给出肯定的结果。
1.2 贝叶斯思维方式
贝叶斯方法对推断结果的不确定性,使其与传统的统计推断有很大的不同。这让人
感觉贝叶斯方法不那么牛 B 了。难道统计学不就是从随机中获取确定性的信息吗?为了
更好的理解确定性和随机性,我们需要像贝叶斯方法一样思考。
在贝叶斯世界里,概率是对一个事件可信度的度量,也就是说,我们有多大信心相
信一个事件会发生。事实上,稍后我们会发现,这正是对概率最原生的解释。
为了解释清楚概率,我们以非正统的观点解释什么是概率:在经典的统计学中,频
率轮者认为,大量事件发生的频度就是概率。例如,在频率论者的思想体系中,飞机发
生事故的概率,就是很长一段时间内飞机发生事故的频度。频率学观点可以解释很多事
件发生的概率,但是当事件发生的频度变小时,即不是长期统计的结果,频率学派的概
率估计的结果误差会很大。Frequentists get around this by invoking alternative realities and saying
across all these realities, the frequency of occurrences defines the probability.
而贝叶斯方法,采用更符合直觉的方式来解释这一问题。贝叶斯方法将概率看成是
对事件发生的可信度(或者对事件发生的信心)的度量。简单的说,概率是对某一判定
的概述。如果一个人认为某一事件发生的可信度为 0,说明这个人不相信这个事件会发
生;反之,如果其认为事件发生的可信度为 1,说明其相信这个事件一定会发生。由于
还存在其他的可能结果,所以可信度的取值区间为
。贝叶斯这种解释概率的方式,
依然可以很好的解释飞机出现故障的概率问题,不考虑其它的任何外界因素,飞机出现
故障的可信度就等于出现故障的频率。所以,在这种概率定义方式下,概率就等于可信
度,所以此时谈论总统大选结果的概率问题时才有意义:你对候选总统 A 能够赢得竞
选的信心有多大?
以上段落介绍的可信度(概率),都是对个人而言的
1.3 贝叶斯推断在实际中的应用
…………………………………………
即使你是一个非常牛 B 的程序猿,你开发的程序也会有 bug。一天,你开发了一个
巨牛
B 的算法,然后开始尝试你的算法,第一步算法通过了一个简单的测试,然
后你增加了测试的难度,你的算法又通过了,最终你的算法一次又一次的通过了
越来越难的测试。这时你认为你的算法中不会存在 bug 了。
4
Probabilistic Programming and Bayesian Methods for Hackers
| 2014/7/15
1.4 频率论者的方法错了吗
频率论者的方法也没有错。例如,基于最小二乘的线性回归,LASSO 回归,EM 算
法,都是很高效的方法。贝叶斯方法只是对频率学派进行补充,处理一些频率学派无法
处理的问题。
注意:在对大数据进行预测,分析时使用的算法往往相对简单[2][4]。可以断言,处
理大数据的困难不在于算法如何复杂,而在与大数据计算、存储等方面的困难(One
should also consider Gelman's quote from above and ask "Do I really have big data?")。
与大数据相比,对中等规模数据的分析会增加不少难度,对小规模数据的分析确实
是个不小的挑战。就如 Gelman's 所说,如果能够很便利的处理大数据,我们更应该关心
中等规模或者规模很小的数据问题。
1.5 我们的贝叶斯框架
我们关心可信度,因为其和贝叶斯理论中的可信性有关。由于有以前的信息存在,
我们对事件 A 有一个先验的可信度。例如在上面讲到的代码 bug 测试的例子中,在测试
之前就存在先验的可信度。
继续以代码 bug 测试为例,如果代码通过了 X 次测试,我们想通过现在的这个结果
更新我们对代码 bug 存在与否的可信度。将新的可信度称为后验概率。通过下式可以对
可信度进行更新,即贝叶斯理论
以上的表示并不是贝叶斯推断所独有的,其它地方也存在这种数学表示。只是贝叶
斯推使用它将先验概率
和后验概率
联系起来而已。
1.6 示例
1.6.1 抛硬币实验
任何统计的文章中都会有抛硬币的例子,这里将展示抛硬币实验与通常文章中介绍
的将不尽相同。假设你不太确定头朝上的概率是多少(剧透一下,头朝上的概率为
50%)。你坚信真理就藏在每次抛硬币的结果中,头朝上的概率可能为吗,但是又不
知道的先验概率是多少,怎么办?
我们开始抛硬币,记录观察结果,结果为或者。有了这些观测数据。我们可能
会问一个有趣的问题,随着观察的数据越来越多,推断如何变化?更具体的说,当数据
很少时后验概率是什么样的,如果数据变大后验概率又该如何变化?
随着数据增加(抛硬币的次数),下面画出一系列的后验概率更新图。Python 脚本
如下。
剩余92页未读,继续阅读
资源评论
- ws2abq482017-09-23目录跟JD给的不一样
已换人
- 粉丝: 28
- 资源: 17
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功