概率编程实战

概率编程实战 pdf epub mobi txt 电子书 下载 2025

[美] Avi,Pfeffer(艾维·费弗) 著,姚军 译
图书标签:
  • 概率编程
  • 贝叶斯统计
  • PyMC3
  • Stan
  • 概率模型
  • 机器学习
  • 统计推断
  • Python
  • 数据科学
  • 建模
想要找书就要到 静流书站
立刻按 ctrl+D收藏本页
你会得到大惊喜!!
出版社: 人民邮电出版社
ISBN:9787115448743
版次:1
商品编码:12161906
品牌:异步图书
包装:平装
开本:16开
出版时间:2017-04-01
用纸:胶版纸
页数:368
正文语种:中文

具体描述

产品特色

编辑推荐

概率推理是机器学习的核心方法之一,本书旨在向程序员,特别是Scala开发人员揭开概率建模的神秘面纱,以帮助程序员们高效地使用概率编程系统。
借助概率编程系统,通过应用特定的算法,你的程序可以确定不同结论的概率。这意味着你可以预测未来事件,如销售趋势、计算机系统故障、试验结果和其他许多重要的关注点。
本书的主要内容
● 概率建模入门
● 用Figaro 编写概率程序
● 构建贝叶斯网络
● 预测产品生命周期
● 决策算法

本书使用的Figaro概率编程语言是Scala库,这使得概率编程模型更容易与Java虚拟机应用集成。同时,Figaro具备了目前概率编程系统中非常广泛的表现特征和推理算法。Figaro还是一个开源GitHub项目,全新版本号为3.3。

内容简介

概率推理是不确定性条件下做出决策的重要方法,在许多领域都已经得到了广泛的应用。概率编程充分结合了概率推理模型和现代计算机编程语言,使这一方法的实施更加简便,现已在许多领域(包括炙手可热的机器学习)中崭露头角,各种概率编程系统也如雨后春笋般出现。

本书的作者Avi Pfeffer正是主流概率编程系统Figaro的首席开发者,他以详尽的实例、清晰易懂的解说引领读者进入这一过去令人望而生畏的领域。通读本书,可以发现概率编程并非“疯狂科学家”们的专利,无需艰深的数学知识,就可以构思出解决许多实际问题的概率模型,进而利用现代概率编程系统的强大功能解题。

本书既可以作为概率编程的入门读物,也可以帮助已经有一定基础的读者熟悉Figaro这一概率编程利器。

作者简介

Avi Pfeffer是概率编程的先驱,Figaro概率编程语言的首席设计者和开发者。在Charles River Analytics公司,Avi Pfeffer致力于Figaro在多个问题上的应用,包括恶意软件分析、汽车健康监控、气象模型建立和工程系统评估。在闲暇时,Avi Pfeffer是一位歌手、作曲家和音乐制作人。他和妻子及三个孩子在马萨诸塞州坎布里奇生活。

目录

第1部分 概率编程和Figaro简介

第1章 概率编程简介 3
1.1 什么是概率编程 4
1.1.1 我们如何做出主观判断 4
1.1.2 概率推理系统帮助决策 5
1.1.3 概率推理系统有3种方式推理 7
1.1.4 概率编程系统:用编程语言表达的概率推理系统 11
1.2 为什么使用概率编程 14
1.2.1 更好的概率推理 14
1.2.2 更好的模拟语言 15
1.3 Figaro简介:一种概率编程语言 16
1.4 小结 23
1.5 练习 24

第2章 Figaro快速教程 25
2.1 Figaro简介 25
2.2 创建模型和运行推理:重回Hello World 27
2.2.1 构建第一个模型 28
2.2.2 运行推理和回答查询 29
2.2.3 构建模型和生成观测值 29
2.2.4 理解模型的构建方法 31
2.2.5 理解重复的元素:何时相同,何时不同 32
2.3 使用基本构件:原子元素 33
2.3.1 离散原子元素 34
2.3.2 连续原子元素 35
2.4 使用复合元素组合原子元素 37
2.4.1 If 38
2.4.2 Dist 39
2.4.3 原子元素的复合版本 39
2.5 用Apply和Chain构建更复杂的模型 40
2.5.1 Apply 41
2.5.2 Chain 43
2.6 使用条件和约束指定证据 46
2.6.1 观测值 46
2.6.2 条件 47
2.6.3 约束 48
2.7 小结 50
2.8 练习 51

第3章 创建一个概率编程应用程序 53
3.1 把握全局 53
3.2 运行代码 56
3.3 探索垃圾邮件过滤应用的架构 59
3.3.1 推理组件架构 59
3.3.2 学习组件架构 62
3.4 设计电子邮件模型 64
3.4.1 选择元素 64
3.4.2 定义依赖关系 67
3.4.3 定义函数形式 68
3.4.4 使用数值参数 71
3.4.5 使用辅助知识 73
3.5 构建推理组件 74
3.6 创建学习组件 78
3.7 小结 81
3.8 练习 82

第2部分 编写概率程序

第4章 概率模型和概率程序 85
4.1 概率模型定义 86
4.1.1 将一般知识表达为可能世界上的某种概率分布 86
4.1.2 进一步探索概率分布 88
4.2 使用概率模型回答查询 90
4.2.1 根据证据调节以产生后验概率分布 90
4.2.2 回答查询 92
4.2.3 使用概率推理 94
4.3 概率模型的组成部分 94
4.3.1 变量 95
4.3.2 依赖性 96
4.3.3 函数形式 101
4.3.4 数值参数 104
4.4 生成过程 105
4.5 使用连续变量的模型 110
4.5.1 使用beta-二项式模型 110
4.5.2 连续变量的表示 111
4.6 小结 114
4.7 练习 114

第5章 用贝叶斯和马尔科夫网络建立依赖性模型 116
5.1 建立依赖性模型 117
5.1.1 有向依赖性 117
5.1.2 无向依赖性 122
5.1.3 直接和间接依赖性 124
5.2 使用贝叶斯网络 126
5.2.1 贝叶斯网络定义 126
5.2.2 贝叶斯网络如何定义概率分布 127
5.2.3 用贝叶斯网络进行推理 128
5.3 探索贝叶斯网络的一个示例 131
5.3.1 设计一个计算机系统诊断模型 131
5.3.2 用计算机系统诊断模型进行推理 135
5.4 使用概率编程扩展贝叶斯网络:预测产品的成功 140
5.4.1 设计产品成功预测模型 140
5.4.2 用产品成功预测模型进行推理 145
5.5 使用马尔科夫网络 147
5.5.1 马尔科夫网络定义 147
5.5.2 表示马尔科夫网络并用其进行推理 150
5.6 小结 153
5.7 练习 153

第6章 使用Scala和Figaro集合构建模型 156
6.1 使用Scala集合 157
6.1.1 为依赖于单一变量的多个变量建立模型 157
6.1.2 创建层次化模型 160
6.1.3 建立同时依赖两个变量的模型 162
6.2 使用Figaro集合 165
6.2.1 理解Figaro集合的用途 165
6.2.2 用Figaro集合重新实现层次化模型 166
6.2.3 结合使用Scala和Figaro集合 168
6.3 建立对象数量未知情况的模型 171
6.3.1 开放宇宙中对象数量未知的情况 171
6.3.2 可变大小数组 172
6.3.3 可变大小数组上的操作 172
6.3.4 示例:预测数量未知的新产品销售额 173
6.4 处理无限过程 174
6.4.1 Process特征 175
6.4.2 示例:一个健康时空过程 176
6.4.3 使用过程 178
6.5 小结 179
6.6 练习 180

第7章 面向对象概率建模 182
7.1 使用面向对象概率模型 183
7.1.1 理解面向对象建模的元素 183
7.1.2 重温打印机模型 185
7.1.3 关于多台打印机的推理 189
7.2 用关系扩展OO概率模型 192
7.2.1 描述通用类级模型 192
7.2.2 描述某种情况 195
7.2.3 用Figaro表现社会化媒体模型 198
7.3 建立关系和类型不确定性的模型 200
7.3.1 元素集合和引用 200
7.3.2 具有关系不确定性的社会化媒体模型 202
7.3.3 具有类型不确定性的打印机模型 205
7.4 小结 207
7.5 练习 207

第8章 动态系统建模 209
8.1 动态概率模型 210
8.2 动态模型类型 211
8.2.1 马尔科夫链 211
8.2.2 隐含马尔科夫模型 214
8.2.3 动态贝叶斯网络 216
8.2.4 结构随时间改变的模型 220
8.3 建立永续系统的模型 224
8.3.1 理解Figaro的宇宙概念 224
8.3.2 使用宇宙建立持续运行系统的模型 225
8.3.3 运行一个监控应用 227
8.4 小结 229
8.5 练习 230

第3部分 推 理

第9章 概率推理三原则 235
9.1 链式法则:从条件概率分布构建联合分布 237
9.2 全概率公式:从联合分布获得简单查询结果 240
9.3 贝叶斯法则:从结果推断原因 243
9.3.1 理解、原因、结果和推理 243
9.3.2 实践中的贝叶斯法则 245
9.4 贝叶斯建模 247
9.4.1 估算硬币的偏差 248
9.4.2 预测下一次掷币结果 252
9.5 小结 256
9.6 练习 256

第10章 因子分解推理算法 258
10.1 因子 259
10.1.1 什么是因子 259
10.1.2 用链式法则分解概率分布 261
10.1.3 使用全概率公式,定义包含因子的查询 263
10.2 变量消除算法 267
10.2.1 VE的图形解释 267
10.2.2 VE代数运算 271
10.3 VE的使用 273
10.3.1 Figaro特有的VE考虑因素 273
10.3.2 设计模型支持高效的VE 275
10.3.3 VE的应用 278
10.4 置信传播 281
10.4.1 BP基本原理 282
10.4.2 Loopy BP的属性 282
10.5 BP的使用 284
10.5.1 Figaro特有的BP考虑因素 284
10.5.2 设计模型以支持高效的BP 285
10.5.3 BP的应用 287
10.6 小结 288
10.7 练习 288

第11章 抽样算法 291
11.1 抽样的原理 292
11.1.1 前向抽样 293
11.1.2 拒绝抽样 297
11.2 重要性抽样 299
11.2.1 重要性抽样的工作方式 300
11.2.2 在Figaro中使用重要性抽样 303
11.2.3 让重要性抽样为您工作 304
11.2.4 重要性抽样的应用 305
11.3 马尔科夫链蒙特卡洛抽样 307
11.3.1 MCMC的工作方式 308
11.3.2 Figaro的MCMC算法:Metropolis-Hastings算法 311
11.4 让MH更好地工作 314
11.4.1 自定义提议 316
11.4.2 避免硬条件 319
11.4.3 MH的应用 320
11.5 小结 321
11.6 练习 322

第12章 处理其他推理任务 324
12.1 计算联合分布 325
12.2 计算最可能的解释 326
12.2.1 在Figaro中计算和查询MPE 329
12.2.2 MPE查询算法的使用 331
12.2.3 探索MPE算法的应用 336
12.3 计算证据的概率 337
12.3.1 观察用于证据概率计算的证据 338
12.3.2 运行证据概率算法 339
12.4 小结 341
12.5 练习 341

第13章 动态推理和参数学习 342
13.1 监控动态系统的状态 342
13.1.1 监控机制 344
13.1.2 粒子过滤算法 345
13.1.3 过滤的应用 348
13.2 学习模型参数 349
13.2.1 贝叶斯学习 349
13.2.2 最大似然和MAP学习 353
13.3 进一步应用Figaro 360
13.4 小结 361
13.5 练习 361

附录A 获取和安装Scala和Figaro 364
A.1 使用sbt 364
A.2 在没有sbt的情况下安装和运行Figaro 365
A.3 从源代码编译 366
附录B 概率编程系统简况 367
好的,这是一本关于深度学习在时间序列预测中应用的图书简介,力求内容详实,贴近实战,风格自然流畅: --- 深度学习驱动的时间序列分析与预测:理论、模型与工程实践 引言:驾驭时间洪流中的复杂性 时间序列数据无处不在,从金融市场的波动、能源消耗的负荷曲线,到天气系统的演变,乃至工业设备运行的健康监测,它们构成了我们理解世界变化的基础。然而,传统的时间序列模型(如ARIMA、GARCH等)在处理高维度、非线性和复杂依赖关系时,往往显得力不从心。 本书旨在为读者提供一套系统、深入的框架,探讨如何利用深度学习的强大表征学习能力,来精确捕捉时间序列数据中蕴含的深层规律,实现更鲁棒、更精准的预测与分析。我们不仅关注前沿模型的搭建,更强调从数据预处理、特征工程,到模型部署和结果解释的完整工程化流程。 第一部分:时间序列基础与深度学习基石 本部分为后续高级章节打下坚实的理论与实践基础。 第一章:时间序列数据的特性与挑战 深入剖析时间序列数据的本质特征:趋势、季节性、周期性、随机性,以及更为隐蔽的长程依赖性 (Long-Range Dependencies, LRD) 和非平稳性 (Non-stationarity)。我们将讨论在实际应用中常见的数据质量问题,如缺失值处理、异常点识别,并介绍一套严谨的数据清洗与规范化流程,为模型输入做好准备。 第二章:深度学习基础回顾与序列建模的适配性 快速回顾深度神经网络(DNNs)的核心结构,并重点探讨其为何能在处理序列数据方面优于传统方法。我们将详细阐述卷积神经网络 (CNN) 在局部特征提取方面的优势,以及循环神经网络 (RNN) 及其变体(如LSTM、GRU)在记忆和顺序信息捕获上的核心机制。特别地,我们会引入注意力机制 (Attention Mechanisms) 的基本概念,为后续的Transformer架构做铺垫。 第三章:特征工程的“深度”进化 传统的时间序列分析依赖于人工构造的滞后项、移动平均和傅里叶变换等特征。本书将展示如何通过深度学习实现自动特征提取。我们将比较手工特征工程与深度学习自动学习特征的优劣,并介绍如何利用自编码器(Autoencoders)对高维序列进行降维和有效表征学习。 第二部分:核心深度学习模型与架构精讲 本部分是本书的技术核心,系统介绍并对比当前时间序列预测领域的主流深度学习模型。 第四章:循环网络的深度优化与应用 深入剖析 长短期记忆网络 (LSTM) 和 门控循环单元 (GRU) 的内部工作原理,着重讲解如何通过调整门控机制来解决梯度消失/爆炸问题,并展示它们在短期负荷预测、股票价格建模中的具体应用。此外,我们将探讨双向RNN (Bidirectional RNNs) 如何有效地利用上下文信息。 第五章:卷积网络在时间序列中的空间-时间建模 虽然CNN常用于图像处理,但其高效的局部模式捕获能力在时间序列中同样适用。本章详细介绍 一维卷积 (Conv1D) 如何作为强大的特征提取器,用于捕捉固定长度的时间窗口内的局部依赖性。我们将介绍 Inception-Time 等结构,以及如何结合池化层进行多尺度特征分析。 第六章:注意力机制与Transformer的革命 Transformer架构彻底改变了序列建模的范式。本章将详细解析 自注意力机制 (Self-Attention) 的计算过程,以及 多头注意力 (Multi-Head Attention) 如何实现对不同依赖关系的并行关注。重点演示 Temporal Fusion Transformer (TFT) 如何融合静态协变量、已知未来输入和历史观测值,实现高度可解释性的多步预测。 第七章:图神经网络(GNN)与时空数据建模 对于涉及空间关联(如交通网络、传感器网络)的时间序列数据,GNN是关键工具。本章介绍 图卷积网络 (GCN) 和 图注意力网络 (GAT) 如何有效地融合时间和空间维度上的依赖关系,例如在城市级交通流预测中的应用。 第三部分:高级预测策略与工程实践 本部分将视角从单一模型推向复杂的系统构建、模型评估和实际部署。 第八章:多变量、多步与概率性预测 真实世界的预测往往需要同时处理多个相关变量(如能源价格、温度、湿度),并要求预测未来多个时间步。本章讲解 Seq2Seq (Sequence-to-Sequence) 框架在多步预测中的应用,并引入 Encoder-Decoder 架构 的优化。更进一步,我们将探讨如何构建概率预测模型(如使用分位数回归或高斯过程与深度学习结合),以量化预测的不确定性,这在风险管理中至关重要。 第九章:模型解释性、评估与鲁棒性检验 深度学习模型的“黑箱”特性是其在关键领域应用的主要障碍。本章系统介绍时间序列预测中的可解释性方法,如 LIME、SHAP 在序列数据上的适应性应用,帮助理解模型关注了哪些历史时间点。同时,我们将严格定义预测误差指标(MAE, RMSE, MAPE之外),并讨论滚动预测 (Rolling Forecast) 和回溯测试 (Backtesting) 的标准流程,确保模型在面对概念漂移时的鲁棒性。 第十章:从原型到生产:模型部署与 MLOps 预测模型只有投入实际使用才能产生价值。本章聚焦于模型部署的工程实践: 数据管道构建: 如何实时或批量地将原始数据转化为模型可接受的特征向量。 模型序列化与服务: 使用TensorFlow Serving或TorchServe等工具实现低延迟预测API。 持续监控与再训练策略: 建立机制来监控模型性能衰减(Model Drift),并设计自动化的模型重训练触发条件。 结语:面向未来的序列智能 本书的目的是装备读者一套完整的工具箱,使他们能够自信地应对从简单趋势跟踪到复杂系统动态预测的各类挑战。深度学习为时间序列分析带来了前所未有的精度和洞察力,而掌握这些技术背后的原理和工程化流程,是实现数据驱动决策的关键。 --- 目标读者: 数据科学家、机器学习工程师、量化分析师、以及对使用前沿AI技术解决时间序列问题感兴趣的行业专家和高级学生。 所需基础: 熟悉Python编程,具备基础的统计学知识,并对基本机器学习概念有所了解。

用户评价

评分

一本好书,真不是随便就能写出来的。我最近刚入手一本《概率编程实战》,拿到手就觉得沉甸甸的,有一种知识的厚重感。书的封面设计也很朴实,没有太多花哨的东西,这反而让我觉得更踏实。拿到之后,我迫不及待地翻开,首先映入眼帘的是清晰的目录,它帮我迅速建立起了对全书内容的整体认知,让我知道接下来会踏上一段怎样的知识旅程。从开篇的理论基础,到后面的各种应用场景,条理非常清晰。文字的编排也很舒服,段落之间的过渡自然流畅,不会让人有跳跃感。我尤其喜欢其中一些小案例的引入,它们往往能用最简单明了的方式解释一个相对复杂的概念,就像是为你点亮了一盏灯,让你豁然开朗。而且,书中使用的例子都相当贴合实际,不是那种脱离现实的理论堆砌,这对于我这样的实践者来说,简直是福音。我能想象到,这本书会成为我工作和学习中不可或缺的参考手册,遇到问题时,翻开它,总能找到解决思路的启发。

评分

刚拿到《概率编程实战》这本书,就被它满满的干货所吸引。开篇的一些基本概念讲解得非常透彻,用词精准,而且引用的参考文献也很丰富,让人感觉作者在这方面下了很深的功夫。虽然是实战类的书籍,但作者并没有忽视理论基础的重要性,而是将理论与实践巧妙地融合在一起。书中讲解的每一个模型,都会先给出其数学原理,然后详细阐述如何用代码来实现,并且还提供了不同场景下的优化技巧。我特别赞赏的是,书中有很多关于模型选择和评估的讨论,这对于我们在实际应用中做出明智的决策至关重要。读这本书,不仅仅是学习一套工具的使用方法,更是理解概率模型的内在逻辑和工作机制。我感觉自己像是进入了一个概率编程的宝库,每一次翻页都能挖掘出新的知识点和灵感。

评分

《概率编程实战》这本书,真的是让我眼前一亮。它不像市面上很多技术书籍那样,只讲“怎么做”,而是深入地探讨了“为什么这么做”。作者在介绍各种概率编程技术的时候,不仅仅给出了代码示例,更重要的是解释了这些技术背后的思想和原理。我喜欢它对于不同方法的权衡和比较,让你清楚地知道在什么情况下应该选择哪种方法,以及每种方法可能带来的优缺点。书中的语言风格非常朴实,没有过多华丽的辞藻,但却字字珠玑,直击核心。我特别喜欢它在讲解复杂概念时,所使用的类比和生活化的例子,一下子就把我拉近了距离,让我觉得学习不再是枯燥的任务,而是一次有趣的探索。读完之后,我感觉自己对概率编程的理解提升了一个层次,不再是停留在表面的操作,而是有了更深入的洞察力。

评分

这本书《概率编程实战》的出现,简直就是为我量身定做的。我一直以来对概率模型在实际问题中的应用都充满了好奇,但苦于缺乏系统性的指导。而这本书,恰恰填补了这个空白。它从基础概念讲起,逐步深入到更复杂的模型和算法,每一个章节的过渡都非常自然,让我能够一步一个脚印地去学习。书中的代码示例也非常详尽,而且作者还提供了很多调试和排错的经验之谈,这对于新手来说,简直是极大的帮助。我尤其欣赏书中对于不同算法的优劣势分析,以及它们在实际应用中的适用场景。读这本书,就像是在一位经验丰富的导师的带领下,进行一场酣畅淋漓的实战演练。我感觉自己不仅学到了知识,更培养了独立解决问题的能力,这对于我今后的工作将会有很大的帮助。

评分

这本《概率编程实战》给我的感觉,就像是在一个经验丰富的老师的指导下进行学习。书中的讲解方式非常注重引导,不是一股脑地把知识倾倒给你,而是循序渐进地带领你理解核心概念。作者在阐述每一个模型、每一个算法的时候,都会先铺垫好必要的背景知识,然后才慢慢深入到细节。让我印象深刻的是,书里很多地方都用到了“可视化”的思维,即使是抽象的概率模型,通过图示和代码的结合,也能变得直观易懂。读的时候,我经常会自己跟着代码敲一遍,然后观察输出的结果,这种动手的过程,比单纯看文字理解得要深刻得多。而且,作者在讲解过程中,还会时不时地提醒一些需要注意的陷阱或者误区,这简直就是为你铺好了平坦的学习之路,省去了不少自己摸索的弯路。我感觉这本书不仅传授了技术,更传递了一种解决问题的思维方式,让我以后遇到类似问题时,能够举一反三,触类旁通。

评分

宝贝很不错,值得购买。

评分

很专业,好书,值得拥有。

评分

上午9点43分下单,下午就到了,真快啊,很爽

评分

概率编程更贴近现实世界,值得看一下

评分

内容经典,好书值得拥有!给学生用了

评分

看完再补评论

评分

京东买书还是挺划算的,物流也快

评分

宝贝很不错,值得购买。

评分

很好的书,需要一些基础

相关图书

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2025 book.coffeedeals.club All Rights Reserved. 静流书站 版权所有