[梁山好汉说IT] 以水浒传为例讲解贝叶斯定理
[白话解析] 深入浅出贝叶斯定理
0x00 摘要
本文将尽量使用易懂的方式介绍一致性贝叶斯定理,并且通过具体应用场景来帮助大家深入这个概念。
0x01 IT概念
1. 贝叶斯定理
贝叶斯定理是用来解决"逆概率"问题的,即根据一些有限的过去数据来预测某个概率。比如利用有限的信息(过去天气的测量数据)来预测明天下雨的概率是多少。
其底层思想是:新观察到的样本信息将修正人们以前对事物的认知。好比是人类刚开始时候对大自然只有少的可怜的先验知识,但是随着不断观察实践获得更多的样本,结果使得人们对自然界的规律摸得越来越透彻。
2. 问题领域
求解问题(A): 呼延灼想知道自己是否是公明哥哥的心腹,用A来代表"你是大哥的心腹"。
已知结果(B): 大哥对你下拜。记作事件B。
推理结果 P(A|B): 想通过大哥对你下拜这个事件,来判断大哥视你为心腹的概率。
3. 相关术语
先验概率:指根据以往经验和分析得到的概率。它作为"由因求果"问题中的"因"出现。
后验概率:指事情已经发生后,要求此事件发生的原因是由于某个因素引起的可能性的大小。后验概率是指得到"已知结果"的信息之后重新修正的概率。是"执果寻因"问题中的"因"。
先验概率是由以往的数据分析得到的概率,泛指一类事物发生的概率,根据历史资料或主观判断未经证实所确定的概率。后验概率而是在得到信息之后再重新加以修正的概率,是某个特定条件下一个具体事物发生的概率。
P(A): 是A的先验概率,之所以称为先验是因为它不考虑任何B方面的因素。
P(B): 是B的先验概率,之所以称为先验是因为它不考虑任何A方面的因素。在这里就是结果B发生的概率。
P(A|B): 是已知B发生之后A的条件概率,就是先有B然后才有A,也由于得自B的取值而被成为A的后验概率。
P(B|A): 是已知A发生之后B条件概率,就是先有A然后才有B,也由于得自A的取值而被成为B的后验概率。
P(B|A)/P(B): 似然函数,这是一个调整因子,即新信息B带来的调整,作用是使得先验概率更接近真实概率。
4. 对应本题
先验概率 P(A): 呼延灼事先无法知道大哥是否视他为心腹,所以只能根据一般的常识(或者以往经验)来分析判断得到一个概率,这里暂定为50%(大哥有喜欢你,不喜欢你两种可能)。
后验概率 P(A|B): 即在B事件"大哥下拜"发生之后,对A事件"大哥视你为心腹"概率的重新评估。
5. 思考模式
新观念等于老观念乘上调整因子(也叫做似然比)。
我们先预估一个先验概率,然后加入实验结果,看看这个实验是增强了还是削弱了先验概率,由此得到更接近实时的后验概率。
后验概率 = 先验概率 x 调整因子
后验概率是 P(A|B)
先验概率是 P(A)
调整因子是 P(B|A)/P(B)
或者用如下方式来思考:
先验分布 + 样本信息 ==> 后验分布
在得到新的样本信息之前,人们对事物的认知是"先验分布"。
在得到新样本信息之后,人们对事物的认知调整为"后验分布"。
即原先你有旧观念 P(假设),有了新证据之后,P(假设|证据)就是你的新观念。新观念等于老观念乘上似然比。P(B|A)/P(B)在这里被称为"似然比"。
或者还有这种思考方式
P(θ|X) = P(X|θ) P(θ) / P(X)
posterior = likehood * prior / evidence
posterior:P(θ|X)是 通过样本X得到参数θ的概率,也就是后验概率。
likehood:P(X|θ)是 通过参数θ得到样本X的概率,似然函数,通常就是我们的数据集的表现,即假设θ已知后我们观察到的数据应该是什么样子的。
prior:P(θ) 是参数θ的先验概率,一般是根据人的先验知识来得出的。
evidence:P(X) 是样本X发生的概率,是各种条件下发生的概率的积分。
0x02 本题如何解答
1. 通俗思考
呼延灼通过大哥对自己下拜这个事件,来判断大哥视自己为心腹的概率。
通俗的思考: 呼延灼先估计一个值(先验概率),然后根据观察的新信息不断修正(可能性函数)。也就是利用 "调整因子" 来不断修改 "先验概率")"
贝叶斯公式:
后验概率P(A|B) = 先验概率P(A) x 调整因子 [P(B|A)/P(B)]
对于本题,则是
P(大哥看重你|大哥下拜) = P(大哥看重你) x [ P(大哥因为看重你才下拜) / P(大哥下拜) ]
如何通俗思考这个"调整因子" ? 通俗理解就是:大哥看重你 / ( 大哥看重你 + 大哥不看重你). 也就是"大哥看重你"这个事件在总体事件中的比重。 这样才可以调整。
2. 具体解题
2.1 如何求先验概率 P(A)?
通常有如下做法:
每个样本所属的自然状态都是已知的(有监督学习)
依靠经验
用训练样本中各类出现的频率估计,比如通过极大似然估计,把频数除以总的次数就可以得到。即样本中本类出现的次数除以样本容量
这里呼延灼用常理判断,大哥看重的概率和不看重的概率都是50%, 即
P(A) = P(-A) = 50%
2.2 如何求P(B)?
P(B) 可以根据经验获得,但一般使用全概率公式,其意义在于:无法知道一个事物独立发生的概率,但是我们可以将其在各种条件下发生的概率进行累加获得。
即全概率公式是对复杂事件的概率求解问题转化为了在不同情况下发生的简单事件的概率的求和问题。
P(B) = P(B|A)P(A) + P(B|-A)P(-A), 这里把A的反集记作-A
本题中对应
P(大哥下拜) = P(大哥因为看重你才下拜)P(大哥看重你) + P(大哥不看重你也会下拜)P(大哥不看重你)
2.3 如何求P(B|A)?
这个很难。原因包括:
概率密度函数包含了一个随机变量的全部信息;
样本数据可能不多;
特征向量x的维度可能很大等等;
解决的办法就是,把估计完全未知的概率密度转化为估计参数。这里就将概率密度估计问题转化为参数估计问题,极大似然估计就是一种参数估计方法。
当然了,概率密度函数的选取很重要,模型正确,在样本区域无穷时,我们会得到较准确的估计值,如果模型都错了,那估计半天的参数,肯定也没啥意义了。
本题中,呼延灼根据样本数据来观察归纳推理来得到的
P(大哥因为看重你才下拜) = 20%
P(大哥不看重你也会下拜) = 80%
2.4 后续推导
所以呼延灼得到了如下公式:
P(大哥看重你|大哥下拜)
= P(大哥看重你) x [P(大哥因为看重你才下拜) / P(大哥下拜)]
= P(大哥看重你) x [P(大哥因为看重你才下拜) / [ P(大哥因为看重你才下拜)P(大哥看重你) + P(大哥不看重你也会下拜)P(大哥不看重你) ] ]
呼延灼发现,公明哥哥对于李逵戴宗并没有纳头便拜,对于董平/关胜/卢俊义则纳头便拜。就知道大哥看重某人其实并不大会下拜,不看重但为了套路某人反而会下拜。
所以呼延灼得出如下计算过程。
以下是呼延灼根据常理假设
p(大哥看重你)=50%
p(大哥不看重你)=50%
以下是呼延灼根据观察归纳推理
P(大哥因为看重你才下拜) = 20%
P(大哥不看重你也会下拜) = 80%
于是呼延灼最终计算如下
P(大哥看重你|大哥下拜) = 50% x (20% / (20%x50% + 80%x50%)) = 20%
所以从大哥对呼延灼下拜这个能看出来,大哥不看重呼延灼。把大哥看重呼延灼这个概率下调。
3. 结论
一句话概括贝叶斯思想,就是"观点随着事实而改变"。
如果我能掌握一个事情的全部信息,我当然能计算出一个客观概率(古典概率)。 可是生活中绝大多数决策面临的信息都是不全的,我们手中只有有限的信息。既然无法得到全面的信息,我们就在信息有限的情况下,尽可能做出一个好的预测。也就是,在主观判断的基础上,你可以先估计一个值(先验概率),然后根据观察的新信息不断修正(可能性函数)。
这就有点像破案,从结果推测缘由。你来到案发现场,收集证据(结果)。通过证据的叠加,凶手的特征逐渐清晰。最终你选择“相信”谁是凶手。
贝叶斯说,你对某个假设的“相信”程度,应该用一个概率来表示——P(假设)。
0x03 参考
https://blog.csdn.net/weixin_40920228/article/details/80850489
https://cloud.tencent.com/developer/news/266248
https://blog.csdn.net/qq_28168421/article/details/83388776
https://blog.csdn.net/zengxiantao1994/article/details/72787849
[梁山好汉说IT] 以水浒传为例讲解贝叶斯定理的更多相关文章
- [梁山好汉说IT] 容器概念在北宋社会的应用
[梁山好汉说IT] 容器概念在北宋社会的应用 0x00 摘要 如何对没有软件开发经验的人解释容器? 集装箱真的能够完美解释容器嘛? 除了集装箱还有其他常见实体能够解释容器嘛? 我找到了一个能够 和集装 ...
- [梁山好汉说IT] 区块链在梁山的应用
[梁山好汉说IT] 区块链在梁山的应用 0x00 摘要 区块链属于一种去中心分布式数据存储系统,有其擅长的应用场景,也有其缺点. 下面用梁山为例来阐释下区块链部分概念&应用. 0x01 梁山好 ...
- [梁山好汉说IT] 熵的概念 & 决策树ID3如何选择子树
[梁山好汉说IT] 熵的概念 & 决策树ID3如何选择子树 0x00 摘要 记录对概念的理解,用梁山好汉做例子来检验是否理解正确. 0x01 IT概念 1. 事物的信息和信息熵 1.1 事物的 ...
- [梁山好汉说IT] 如何理解一致性Hash
[梁山好汉说IT] 如何理解一致性Hash 0x00 摘要 用梁山酒店分配客人为例来理解一致性Hash. 0x01. 与经典哈希方法的对比 经典哈希方法:总是假设内存位置的数量是已知且固定不变的.因为 ...
- [梁山好汉说IT] 梁山好汉和抢劫银行
[梁山好汉说IT] 梁山好汉和抢劫银行 0x00 摘要 今天看了一篇文章<史上最有学问的银行劫匪,教你如何把握人生重大机会>.先摘录精华如下,然后看看梁山好汉在类似情况下如何处理 (东京汴 ...
- [梁山好汉说IT] 梁山好汉和秒杀系统
[梁山好汉说IT] 梁山好汉和秒杀系统 0x00 摘要 今天看了一篇好文章,里面一些思路颇值得借鉴.先摘录总结精华.然后看看梁山好汉如何处理秒杀系统(系统隔离/系统搭建/风控过滤/削峰/信号广播... ...
- [梁山好汉说IT] 如何理解脑裂问题
[梁山好汉说IT] 如何理解脑裂问题 这个系列是通过梁山好汉的例子来阐述一些IT概念. 1. 问题描述 Split-brain, 就是在集群环境中,因为异常情况发生后,产生两个子集群.每个子集群都选出 ...
- 以python为例讲解闭包机制
以python为例讲解闭包机制 缘起 在学习JS的过程中,总是无可避免的接触到闭包机制,尤其是接触到react后,其函数式的编程思想更是将闭包发扬光大,作为函数式编程的重要语法结构,python自然也 ...
- [梁山好汉说IT] 边缘计算在梁山的应用
[梁山好汉说IT] 边缘计算在梁山的应用 0x00 摘要 梁山泊下四个酒店就是边缘计算在梁山的应用,以朱贵南山酒店为例能看出其"计算实时/省流量/具备智能"等各种优点. 0x01 ...
随机推荐
- Java面向对象----Java面向对象(OOP)概念
理解面向对象 关键:让每一个对象负责执行一组相关任务 面向过程:算法第一,数据第二 面向对象:数据第一,算法第一 特点: 万物皆对象 程序是一组对象彼此之间在发送消息 每个对象都有自己的内存占用,可以 ...
- SGU 107 987654321 problem【找规律】
题目链接: http://acm.sgu.ru/problem.php?contest=0&problem=107 题意: 平方后几位为987654321的n位数有多少个 分析: 虽然说是水题 ...
- JAVA内存溢出解析(转)
JAVA内存溢出解析(转) 核心提示:原因有很多种,比如: 1.数据量过于庞大:死循环 :静态变量和静态方法过多:递归:无法确定是否被引用的对象: 2.虚拟机不回收内存(内存泄漏): 说白了就是程序运 ...
- saltStack_template
模版使用 新建文件:vim dns.sls vim file/resolv.conf 执行 : [root@server_client base]# salt \* state.sls dns ...
- 2013-2-1 pdf中无法用金山词霸取词问题
打开pdf的编辑——〉首选项——〉一般——〉选项——〉开始——〉只有经过认证的插件,把‘checkbox’里的勾去掉,重启. ★在acrobat reader启动画面里如果没有加载xdict32(工具 ...
- 洛谷P4018 Roy&October之取石子 题解 博弈论
题目链接:https://www.luogu.org/problem/P4018 首先碰到这道题目还是没有思路,于是寻思还是枚举找一找规律. 然后写了一下代码: #include <bits/s ...
- error LNK2001: unresolved external symbol __imp___rt_sdiv
这个问题搞了我 5 天(包括双休日), 我一定要记录下来. 问题描述 用 Visual Studio 2008 编译 WinCE 7 平台的应用程序,编译没问题,链接时出现了一堆 Link error ...
- 如何用简单易懂的例子解释条件随机场(CRF)模型?它和HMM有什么区别?
https://www.zhihu.com/question/35866596/answer/418341940
- springboot2多数据源完整示例
springboot2 + mybatis + mysql + oracle + sqlserver多数据源的配置 相信很多朋友在开发的时候,可能会碰到需要一个项目,配置多个数据源的需求,可能是同一种 ...
- [转]基于VS Code快速搭建Java项目
有时候随手想写一点Java测试代码,以控制台程序为主,还会用到一些其它框架,并基于Maven构建. 1.Java Extension Pack一定要安装. 2.VS Code打开一个指定目录,创建相应 ...