返回 登录
0

为机器学习爱好者推荐一本书《贝叶斯方法:概率编程与贝叶斯推断》

阅读2653

图片描述

本书的内容特色:

  • 学习贝叶斯思维方式

  • ·理解计算机如何进行贝叶斯推断

  • ·利用PyMC Python库进行编程来实现贝叶斯分析

  • ·利用PyMC建模以及调试

  • ·测试模型的拟合优度

  • ·打开马尔科夫链蒙特卡洛算法的黑盒子,看看它如何工作

  • ·利用大数定律的力量

  • ·掌握聚类、收敛、自相关、细化等关键概念

  • ·根据目标和预期的结果,利用损失函数来推断缺陷

  • ·选择合理的先验,并理解其如何随着样本量的大小而变化

  • ·克服“研发与开发”的困境:判断是否已经足够好了

  • ·利用贝叶斯推断改良A/B测试

  • 在可用数据量小的情况下,解决数据科学的问题

贝叶斯方法是一种常用的推断方法,然而对读者来说它通常隐藏在乏味的数学分析章节背后。关于贝叶斯推断的书通常包含两到三章关于概率论的内容,然后才会阐述什么是贝叶斯推断。不幸的是,由于大多数贝叶斯模型在数学上难以处理,这些书只会为读者展示简单、人造的例子。这会导致贝叶斯推断给读者留下“那又如何?”的印象。实际上,这曾是我自己的先验观点。

最近贝叶斯方法在一些机器学习竞赛上取得了成功,让我决定再次研究这一主题。然而即便以我的数学功底,我也花了整整3天时间来阅读范例,并试图将它们汇总起来以便理解这一方法。那时并没有足够的文献将理论和实际结合起来。而让我产生理解偏差的正是由于没能将贝叶斯数学理论和概率编程实践结合起来。当然,如今读者已经无需再遭遇我当时的情景。本书就是为了填补这一空缺而编写的。

如果我们最终是要进行贝叶斯推断,那么一方面我们可以采用数学分析来实现这一目的,而另一方面,随着计算成本的下降,我们已经可以通过概率编程来完成这一任务。后一种方法更加有用,因为它避免了在每一步介入数学干预,而这也使得进行贝叶斯推断不再以通常很棘手的数学分析为前提。简而言之,后一种计算途径,是从问题起点经过小幅中间步骤到达问题终点,而前一种途径则大幅跃进,并通常最后远离目标。此外,如果没有深厚的数学功底,也根本无法完成前一种途径所需要的数学分析。

《贝叶斯方法:概率编程与贝叶斯推断》首先从计算和理解的角度,而后从数学分析的角度对贝叶斯推断进行了介绍。当然,作为一本入门书籍,本书将停留在入门阶段。对于受过数学训练的人来说,本书产生的疑问可通过其他偏重数学分析的书来解答。对于缺少数学背景的爱好者,或是仅对贝叶斯方法的实践而非数学理论感兴趣的读者来说,本书足以胜任且蕴含趣味。

选择PyMC作为概率编程语言有两方面原因。首先,在写本书之时,并没有集中的关于PyMC的说明和实例等资料。官方文档面向具有贝叶斯推断和概率编程背景知识的人。而我们希望本书可以鼓励各个层次的人了解PyMC。其次,随着近来用Python实现科学计算框架的流行及其核心进展,PyMC可能很快会成为核心组件之一。

PyMC的运行需要一些依赖库,包括NumPy以及可选的SciPy。为了不产生限制,本书的实例只依赖PyMC、NumPy、SciPy和Matplotlib。

《贝叶斯方法:概率编程与贝叶斯推断》内容安排如下。第1章介绍贝叶斯推断方法以及与其他推断方法的比较。我们会看到第一个贝叶斯模型,并对其进行建立和训练。第2章以实例为重点,讲述如何用PyMC构建模型。第3章介绍计算推断背后的一个强大算法——马尔科夫链蒙特卡洛,以及一些贝叶斯模型的调试技术。在第4章里,我们再次回到推断的样本量问题上,并解释为何样本量大小如此重要。第5章介绍强大的损失函数,它将在真实世界的问题与数学推断之间建立连接。我们将在第6章回顾贝叶斯先验,并通过启发式的方法找到先验的更优解。最后,我们在第7章探索如何将贝叶斯推断用于A/B测试。

关于作者:

Cameron Davidson-Pilon,接触过数学在多个领域的应用——从基因和疾病的动态演化,到金融价格的随机模型。他对于开源社区最主要的贡献包括这本书以及lifelines项目。Cameron成长于加拿大的安大略省圭尔夫市,而就读于滑铁卢大学以及莫斯科独立大学。如今他住在安大略省渥太华市,并在电商领军者Shopify工作。

目录

第1章 贝叶斯推断的哲学 1
1.1 引言 1
1.1.1 贝叶斯思维 1
1.1.2 贝叶斯推断在实践中的运用 3
1.1.3 频率派的模型是错误的吗? 4
1.1.4 关于大数据 4
1.2 我们的贝叶斯框架 5
1.2.1 不得不讲的实例:抛硬币 5
1.2.2 实例:图书管理员还是农民 6
1.3 概率分布 8
1.3.1 离散情况 9
1.3.2 连续情况 10
1.3.3 什么是 12
1.4 使用计算机执行贝叶斯推断 12
1.4.1 实例:从短信数据推断行为 12
1.4.2 介绍我们的第一板斧:PyMC 14
1.4.3 说明 18
1.4.4 后验样本到底有什么用? 18
1.5 结论 20
1.6 补充说明 20
1.6.1 从统计学上确定两个l值是否真的不一样 20
1.6.2 扩充至两个转折点 22
1.7 习题 24
1.8 答案 24
第2章 进一步了解PyMC 27
2.1 引言 27
2.1.1 父变量与子变量的关系 27
2.1.2 PyMC变量 28
2.1.3 在模型中加入观测值 31
2.1.4 最后…… 33
2.2 建模方法 33
2.2.1 同样的故事,不同的结局 35
2.2.2 实例:贝叶斯A/B测试 38
2.2.3 一个简单的场景 38
2.2.4 A和B一起 41
2.2.5 实例:一种人类谎言的算法 45
2.2.6 二项分布 45
2.2.7 实例:学生作弊 46
2.2.8 另一种PyMC模型 50
2.2.9 更多的PyMC技巧 51
2.2.10 实例:挑战者号事故 52
2.2.11 正态分布 55
2.2.12 挑战者号事故当天发生了什么? 61
2.3 我们的模型适用吗? 61
2.4 结论 68
2.5 补充说明 68
2.6 习题 69
2.7 答案 69
第3章 打开MCMC的黑盒子 71
3.1 贝叶斯景象图 71
3.1.1 使用MCMC来探索景象图 77
3.1.2 MCMC算法的实现 78
3.1.3 后验的其他近似解法 79
3.1.4 实例:使用混合模型进行无监督聚类 79
3.1.5 不要混淆不同的后验样本 88
3.1.6 使用MAP来改进收敛性 91
3.2 收敛的判断 92
3.2.1 自相关 92
3.2.2 稀释 95
3.2.3 pymc.Matplot.plot() 97
3.3 MCMC的一些秘诀 98
3.3.1 聪明的初始值 98
3.3.2 先验 99
3.3.3 统计计算的无名定理 99
3.4 结论 99
第4章 从未言明的最伟大定理 101
4.1 引言 101
4.2 大数定律 101
4.2.1 直觉 101
4.2.2 实例:泊松随机变量的收敛 102
4.2.3 如何计算Var(Z) 106
4.2.4 期望和概率 106
4.2.5 所有这些与贝叶斯统计有什么关系呢 107
4.3 小数据的无序性 107
4.3.1 实例:地理数据聚合 107
4.3.2 实例:Kaggle的美国人口普查反馈比例预测比赛 109
4.3.3 实例:如何对Reddit网站上的评论进行排序 111
4.3.4 排序! 115
4.3.5 但是这样做的实时性太差了 117
4.3.6 推广到评星系统 122
4.4 结论 122
4.5 补充说明 122
4.6 习题 123
4.7 答案 124
第5章 失去一只手臂还是一条腿 127
5.1 引言 127
5.2 损失函数 127
5.2.1 现实世界中的损失函数 129
5.2.2 实例:优化“价格竞猜”游戏的展品出价 130
5.3 机器学习中的贝叶斯方法 138
5.3.1 实例:金融预测 139
5.3.2 实例:Kaggle观测暗世界 大赛 144
5.3.3 数据 145
5.3.4 先验 146
5.3.5 训练和PyMC实现 147
5.4 结论 156
第6章 弄清楚先验 157
6.1 引言 157
6.2 主观与客观先验 157
6.2.1 客观先验 157
6.2.2 主观先验 158
6.2.3 决策,决策…… 159
6.2.4 经验贝叶斯 160
6.3 需要知道的有用的先验 161
6.3.1 Gamma分布 161
6.3.2 威沙特分布 162
6.3.3 Beta分布 163
6.4 实例:贝叶斯多臂老虎机 164
6.4.1 应用 165
6.4.2 一个解决方案 165
6.4.3 好坏衡量标准 169
6.4.4 扩展算法 173
6.5 从领域专家处获得先验分布 176
6.5.1 试验轮盘赌法 176
6.5.2 实例:股票收益 177
6.5.3 对于威沙特分布的专业提示 184
6.6 共轭先验 185
6.7 杰弗里斯先验 185
6.8 当N增加时对先验的影响 187
6.9 结论 189
6.10 补充说明 190
6.10.1 带惩罚的线性回归的贝叶斯视角 190
6.10.2 选择退化的先验 192
第7章 贝叶斯A/B测试 195
7.1 引言 195
7.2 转化率测试的简单重述 195
7.3 增加一个线性损失函数 198
7.3.1 收入期望的分析 198
7.3.2 延伸到A/B测试 202
7.4 超越转化率:t检验 204
7.4.1 t检验的设定 204
7.5 增幅的估计 207
7.5.1 创建点估计 210
7.6 结论 211
术语表 213

如果您已经读过这本书,可以选择阅读:《Python机器学习——预测分析核心算法》

图片描述

评论