贝叶斯推理:基本概念

最近在读这本书,《Bayesian Methods for Hackers : Probabilistic Programming and Bayesian Inference》,即《贝叶斯方法的高级用法:概率编程和贝叶斯推理》,作者是 Cameron Davidson-Pilon。

概率统计是机器学习、深度学习等人工智能技术的基础理论之一;贝叶斯推理是概率统计实用价值最大的组成部分之一。

本书用代码和图表实例化、形象化地阐释贝叶斯推理,避开了数学公式的生硬呆板、繁难枯燥的说教,使得人们能看懂代码和图表就能理解贝叶斯推理的具体方法。

感觉书写得不错,能读懂、受启发、有收获,所以把一些心得体会记下来、说出去,但愿对别人也有用。

先把本书阐述贝叶斯推理的基本观点罗列如下:
1. 贝叶斯方法是数据专家(data scientist)使用的诸多工具之一。它可用于预测、分类、分级、推理、识别垃圾邮件,等等。
2. 贝叶斯学派认为概率是对某一事件的发生相信的程度,是对这一信念强弱的度量。
3. 为了兼容传统概率论,贝叶斯学派把对事件AAA 的信念记作P(A)" role="presentation" style="position: relative;">P(A)P(A)P(A) ,并称作先验概率
4. 新的证据XXX出现后,对事件A" role="presentation" style="position: relative;">AAA 的信念记作P(A|X)P(A|X)P(A|X) ,并称作后验概率
5. 贝叶斯推理的结果有2个值:事件AAA 为真和假两个概率(例如,分别为0.8与0.2)。传统概率学派的频率方法只有事件A" role="presentation" style="position: relative;">AAA 为真的一个值。
6. 在证据较少时,贝叶斯推理优于依赖大数据集的频率方法

贝叶斯定理是这般模样:

P(A|X)=P(X|A)P(A)P(X)(1)(1)P(A|X)=P(X|A)P(A)P(X)

\begin{align}P( A | X ) = \frac{ P(X | A) P(A) } {P(X) } \end{align}近似于

P(A|X)=P(X|A)P(A)(2)(2)P(A|X)=P(X|A)P(A)

\begin{align}P( A | X ) =P(X | A) P(A) \end{align}

这一公式用数学描述了客观事实,并非只供贝叶斯推理专用。贝叶斯推理只是将先验概率 P(A)P(A)P(A) 与更新了的后验概率 P(A|X)P(A|X)P(A|X) 联系在一起。

用法示例:他是农民还是图书管理员

假定某地的男性农民与男性图书管理员的比例为 20:1。王强是当地的一名男性,从平时的行为举止看,他像是图书管理员,但从统计学上看,他更可能是农民。真相如何,可用贝叶斯推理来分析。

假定当地只有农民和图书管理员这两种职业。

用 AAA 表示王强是图书管理员。如果没有关于王强的其他信息,则 P(A)=1/21=0.047" role="presentation" style="position: relative;">P(A)=1/21=0.047P(A)=1/21=0.047P(A) = 1/21 = 0.047 。这是先验概率。

假定有邻居提供了关于王强的信息 XXX 。我们关心的则是后验概率P(A|X)" role="presentation" style="position: relative;">P(A|X)P(A|X)P(A|X) 。

回到上述的贝叶斯定理。我们已经知道了 P(A)P(A)P(A) 的值,还需确定 P(X|A)P(X|A)P(X|A) 与 P(X)P(X)P(X) 的值。

若邻居说王强是图书管理员,P(X|A)P(X|A)P(X|A) 表示的是这个说法为真的概率。它的值接近 1.0,比如 0.95。

邻居可能说王强是图书管理员,也可能说不是。P(X)P(X)P(X) 表示的是邻居提供信息,说王强是或不是图书管理员的概率。

P(X)P(X)P(X) 的计算公式是:

P(X)=P(X and A)+P(X and ∼A)=P(X|A)P(A)+P(X|∼A)P(∼A)(3)(4)(3)P(X)=P(XandA)+P(Xand∼A)(4)=P(X|A)P(A)+P(X|∼A)P(∼A)

\begin{align} P( X ) & = P(X\ and\ A) + P(X\ and\ ∼A) \\[5pt] & = P(X | A) P(A) + P(X| ∼ A) P(∼A) \end{align}
∼A∼A∼ A 表示王强不是图书管理员,而是农民。我们已知 P(X|A)P(X|A)P(X|A) 、 P(A)P(A)P(A) 和 P(∼A)=1−P(A)=20/21P(∼A)=1−P(A)=20/21P(∼ A) = 1 − P(A) = 20/21 ,现在只需弄清 P(X|∼A)P(X|∼A)P(X| ∼ A),即邻居说王强是农民的概率。假设它的值为 0.5,于是, P(X)=0.95∗(1/21)+(0.5)∗(20/21)=0.52P(X)=0.95∗(1/21)+(0.5)∗(20/21)=0.52P(X) = 0.95 ∗ (1/21) + (0.5) ∗ (20/21) = 0.52 。

把上述各项值代入贝叶斯定理:

P(A|X)=0.95/210.52=0.087P(A|X)=0.95/210.52=0.087

P( A | X ) = \frac{ 0.95/21 } {0.52 } = 0.087

结果,王强是图书管理员的后验概率为 0.087。这个估值不算太高,但考虑到一个人是图书管理员的先验概率是 1/20,或 0.0476,后验概率也是合乎逻辑的。但是,王强是农民的可能,依然远大于是图书管理员的可能。

下面的代码,把以上文字描述转成可视化图形,对于王强是农民或图书管理员的先验概率与后验概率作出对照比较。

%matplotlib inline
from IPython.core.pylabtools import figsize
import numpy as np
from matplotlib import pyplot as plt
figsize(12.5, 4)
plt.rcParams['savefig.dpi'] = 300
plt.rcParams['figure.dpi'] = 300
colors = ["#348ABD", "#A60628"]
prior = [1/21., 20/21.]
posterior = [0.087,1-0.087]
plt.bar([0, .7], prior, alpha=0.70, width=0.25,color=colors[0], label="prior distribution",lw="3", edgecolor="#348ABD")
plt.bar([0+0.25, .7+0.25], posterior, alpha=0.7,width=0.25, color=colors[1],label="posterior distribution",lw="3", edgecolor="#A60628")
plt.xticks([0.20, 0.95], ["Librarian", "Farmer"])
plt.title("Prior and posterior probabilities of Steve’s occupation"
)
plt.ylabel("Probability")
plt.legend(loc="upper left");

贝叶斯推理:基本概念相关推荐

  1. 十张图解释机器学习的基本概念

    在解释机器学习的基本概念的时候,我发现自己总是回到有限的几幅图中.以下是我认为最有启发性的条目列表. 1. Test and training error: 为什么低训练误差并不总是一件好的事情呢:E ...

  2. ad20如何导入库_一文看懂如何使用(Py)Stan进行贝叶斯推理

    在PyStan中应用贝叶斯回归 鼓励您在参与本文之前检查一下此概念性背景. 设定 Stan [1]是用于贝叶斯模型拟合的计算引擎. 它依赖于哈密顿量的蒙特卡罗(HMC)[2]的变体来从各种贝叶斯模型的 ...

  3. 变分(Calculus of variations)的概念及运算规则(二)

    文章目录 6. Euler-Lagrange equation 6.6 一般化 6.7 泛化到流形 6.8 具体例子 7. Beltrami's identity 8. Euler–Poisson e ...

  4. 先验概率、后验概率、似然函数概念的区分

    博文二的链接:原文链接:https://blog.csdn.net/u011092188/article/details/60468246    本文中的很多➗没有打印出来,还是看原文吧 博文一: 先 ...

  5. python垃圾邮件识别_Python贝叶斯推理垃圾邮件分类

    针对贝叶斯垃圾邮件分类,阮一峰大神在多年前曾经写过一篇博客文章,他写的有些观点看起来很简单明了,不过我有点不是很理解其推导过程,虽然最后的结果等价,但是我还是觉得他的那套简单推导,感觉不太容易理解,可 ...

  6. 贝叶斯推理和机器学习中文版_机器学习如何使AI忘记知识表示和推理

    贝叶斯推理和机器学习中文版 In my early days working as a data scientist in AI, I was taught one thing above all: ...

  7. 机器学习中贝叶斯判决、概率分布、样本等概念间的关系

    以下是在看模型识别,机器学习及数理统计时,对贝叶斯决策.概率分布.样本关系的总结,每想到一点就写下来,比较乱,这块需要反复学习.慢慢理解. 1. 机器学习的一些概念: 什么是机器学习? 机器学习包含哪 ...

  8. 贝叶斯推理——概率思维

    作者:财小米 链接:https://www.jianshu.com/p/954b34a33578 来源:简书 著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 人生中最重要的问题, ...

  9. 【统计学】贝叶斯推理方法

    贝叶斯推理方法 随着因特网的普及和同步技术的发展, 贝叶斯统计开始运用于商业领域. 通过互联网可以实现自动收集顾客的购买和检索记录, 从而推测顾客的类别. 在这一点上, 贝叶斯统计学完胜传统意义上的统 ...

最新文章

  1. appscan基本功能
  2. python Elasticsearch update
  3. 办公室里绝对不可谈论的4大话题
  4. Multi-tenant or multi-instance?
  5. mysql行锁同索引键问题_mysql 锁问题 (相同索引键值或同一行或间隙锁的冲突)
  6. 信捷触摸屏c语言脚本_信捷触摸屏TG系列产品型号说明及功能介绍
  7. 第5课 开心的金明《聪明人的游戏:信息学探秘.提高篇》
  8. android getevent 代码,Getevent  |  Android 开源项目  |  Android Open Source Project
  9. FastDFS 学习笔记
  10. mvc @html.action() 跨area调用controller 中的action
  11. 3DS_MAX渲染笔记
  12. 1.数据结构笔记学习--预备知识
  13. 转,jQuery入门[4]-链式代码
  14. 知群产品经理必修TOP班 学习笔记:电梯演讲和商业画布
  15. Cannot save setting
  16. Python开源项目合集(网页框架)
  17. [原][小说]我和她同居的日子 二
  18. 2021年web前端基础面试题
  19. 计算机应用Office2016,Office 2016
  20. 循环结构(二)——循环嵌套

热门文章

  1. 关于腾讯buglly符号表问题
  2. 青村茶舍||“认知障碍干扰计划”社会治理创新活动
  3. subList 截取数组 前10个
  4. 安装Postgres
  5. Linux修改用户名后无法登入系统(乌班图)
  6. WebContent与webapp
  7. matlab里newff,matlab中newff函数
  8. python对文件的写操作方法seek_python文件操作及seek偏移详解
  9. MySQL 主从,6 分钟带你掌握!
  10. java 问号_java泛型--问号?和T或E或K或V的区别