条件概率公式

在理解贝叶斯之前需要先了解一下条件概率和全概率,这样才能更好地理解贝叶斯定理

一丶条件概率

条件概率定义:已知事件A发生的条件下,另一个事件B发生的概率成为条件概率,即为P(B|A)

如图A∩B那一部分的发生的概率即为P(AB),

P(AB)=发生A的概率*发生A之后发生B的概率=发生B的概率*发生B之后发生A的概率

即:

P(AB)=P(A)*P(B|A)=P(B)*P(A|B)

P(B|A)=P(AB)/P(A)=P(B)*P(A|B)/P(A)

二丶全概率公式

全概率公式就是在样本空间E中,有一个事件A,而样本空间被划分为多个子空间B1,B2,B3…….,对于每一个子空间Bi,发生A事件的概率为:

P(A)=P(Bi)*P(A|Bi) i=1,2,3......n

也就是:发生Bi的概率*Bi中发生A的概率

那么整个样本空间E中发生A的概率即为:每一个样本子空间中发生A的概率的总和:

P(A)=P(B1)*P(A|B1)+P(B2)*P(A|B2)+.............+P(Bn)*P(A|Bn)

以上就是全概率公式,也可以写作:

全概率公式就是求一个事件在整个样本中发生的概率

三丶贝叶斯定理

贝叶斯定理不同的是,他是已知一个事件在整个样本中发生的概率之后,然后求另一个时间发生的概率

比如在A时间发生的情况下,它属于Bi子样本空间的概率P(Bi|A),那么我们就可以根据条件概率公式来求

发生a事件概率*发生a事件且a时间发生在Bi子样本的概率=发生Bi的概率*发生Bi之后发生a的概率

即为:**P(Bi|A)*P(A)=P(Bi)*P(A|Bi)**

然后根据全概率公式:

所以:

P(Bi/A)=P(Bi)*P(A|Bi)/P(A)

把P(A)带入上面的式子,可得贝叶斯公式:

下面我们举个例子:

在这一系列数据中计算出在第三个子数据集中发生1事件的概率:

#创建一个虚拟的数据

def c_data():

dataset=[

[1,2,3,5,1],#数据中包含四个子数据

[1,2,1,1,8,8],

[1,7,2,3,5],

[4,8,9,1,1,8,9,3]

]

return dataset

#计算某一事件A发生的全概率

def compute_prob(dataset,event):

#发生的概率

prob_event=0.0

for sub_dataset in dataset:

prob_sub=1/len(dataset)#该子集发生的概率

num=len(sub_dataset)#子集的数据个数

data_dict = {}#创建一个字典

for data in sub_dataset:

prob=0.0

if data in data_dict:

data_dict[data]+=1

else:

data_dict[data]=1

if event in data_dict:

prob+=data_dict[event]/num#事件在该子集中的出现概率

data_dict.clear()#清空字典用于下一个子集

else:

print("没有该事件")

prob_event+=prob*prob_sub #子集发生概率*自己中事件发生概率

return prob_event#返回事件的全概率

#计算事件A发生条件下第几个子空间sub_dataset发生的概率

def comnpute_prob_sub_dataset(dataset,sub_dataset_id,event):

prob_sub_dataset=1/len(dataset)#发生在该子空间的概率

print("发生在该子空间中的概率:%f"%prob_sub_dataset)

event_num=dataset[sub_dataset_id].count(event)#该事件在子空间中出现的次数

prob_sub_dataset_event=event_num/len(dataset[sub_dataset_id])#事件在子空间中发生的概率

print("在改子空间中发生事件的概率:%f"%prob_sub_dataset_event)

prob_event=compute_prob(dataset,event=event)

print("整个样本发生事件的概率:%f"%prob_event)

prob_sub_dataset=(prob_sub_dataset*prob_sub_dataset_event)/prob_event#事件发生在某一子集中的概率

print("概率为:%f"%prob_sub_dataset)

return prob_sub_dataset

dataset=c_data()

comnpute_prob_sub_dataset(dataset,sub_dataset_id=2,event=1)#1出现在第三个子集中的概率

结果:

这只是一个简单的例子,可以笔算试一下 看看是不是这个结果。代码还能优化,自己才疏学浅,也是个渣

文章最后发布于: 2018-04-04 14:19:14

相关阅读

本节主要讲一下网站SEO优化的全攻略,来帮助一些新手站长在网站运营的道路上可以找到重点,少走一些弯路!目前网上虽然有很多seo教程,

小学期末考试刚

一文看清Libra全景(超长22000字,慎点)牛顿先生拆解区块链原创2019-07-04 11:37作者:牛顿先生本文已收录于第一本关于Libra的专著《Lib

A5创业网(公众号:iadmin5)5月5日报道,天眼查数据显示,4月29日,花椒直播主体公司北京密境和风科技有限公司发生多项变更,360、芒果文创等

双因子认证(2FA)解决方案方案应用背景应用需求方案阐述一、方案特点二、方案设计三、方案组成四、环境要求方案应用背景

随着企业日

python如何计算概率事件_「条件概率公式」scikit-learn机器学习(五)--条件概率,全概率和贝叶斯定理及python实现 - seo实验室...相关推荐

  1. python羊车门问题_「羊车门」经典概率题中不换门选中车的概率是多少?

    今天用Python求解「羊车门」经典的概率问题,对概率学基础和Python语法的灵活运用有所收货. 本次「羊车门」求解过程采用的是:穷举法计算概率已验证概率学基础理论.期间重点借鉴了'奥卡姆剃刀的博客 ...

  2. sin的傅里叶变换公式_「傅里叶变换公式」傅里叶变换的解释与推导 - seo实验室...

    傅里叶变换公式 http://blog.csdn.net/linmingan/article/details/51194187 注:文章中有一两处公式错误,(1)辅助角公式中求幅值应该是平方开根号,( ...

  3. python 加速度_「加速度公式」加速度公式1 - seo实验室

    加速度公式 与加速度有关的公式跟知识点,挑重点记忆吧 一.质点的运动(1)------直线运动 1)匀变速直线运动 1.平均速度V平=s/t(定义式) 2.有用推论Vt2-Vo2=2as 3.中间时刻 ...

  4. python深度神经网络量化_「深度神经网络」(deep neural network)具体是怎样工作的?...

    本文将从深度神经网络本质的视角解释其黑盒特性.这篇解读来源于CVPR2017一篇Oral的文章,作者希望通过寻找到网络中间层与一些语义概念的对应关系,从而实现对于CNN网络潜在的表达能力的定量化分析, ...

  5. python求正方体体积_「高中数学」简单几何体的面积与体积相关知识点整理+例题...

    一.知识要点 (一)圆柱.圆锥.圆台的侧面积 将侧面沿母线展开在平面上,则其侧面展开图的面积即为侧面面积. 1.圆柱的侧面展开图--矩形 圆柱的侧面积 2.圆锥的侧面展开图--扇形 圆锥的侧面积 3. ...

  6. 如何计算像素当量_「轴承知识」如何通过静承载能力选择轴承

    Sulli小苏:今天详细介绍下如何通过静承载能力选择轴承.轴承可容许的负荷不是取决于材料的疲劳,而是看负荷对轴承滚道造成的永久变形的程度.作用在静止的轴承.或者缓慢摆动的轴承上的负荷, 或者作用在旋转 ...

  7. python创建工作簿_「总结篇」Python中所有的Excel操作技巧

    Python对于Excel的操作是多种多样的,掌握了相关用法就可以随心所欲的操作数据了! 操作xls文件 xlrd(读操作): import xlrd 1.引入xlrd模块 workbook=xlrd ...

  8. python可视化的优势_「数据可视化」数据可视化的优势有哪些?

    数据可视化的优势有哪些?大数据可视化的实际意义是协助人更强的分析数据,信息内容的品质挺大水平上取决于其表达形式.对大数字列举所构成的数据信息中所包括的实际意义开展剖析,使剖析結果数据可视化. 实际上大 ...

  9. 用python爬取网站_「自如网」关于用python爬取自如网信息的价格问题(已解决) - seo实验室...

    自如网 ###这是一篇求助文,我能获取图片并变成字符串,但是无法获取位移量### 前两坛突发奇想想要爬取自如网的租房数据,本来以为能够请求+美丽+ re能全部搞定,没想到这个网站的反爬机制有点让我搞不 ...

最新文章

  1. PyTorch版YOLOv4更新了,不仅适用于自定义数据集,还集成了注意力和MobileNet
  2. shell 基本知识
  3. jquery 逗号分割截取字符串_Python中常用的8种字符串操作方法
  4. java byte short_java.lang.Short.byteValue()方法实例
  5. mount/umount命令【转】
  6. Missing artifact com.sun:tools:jar:1.5.0解决的方法
  7. H5中新增加的一些标签
  8. ETL工具-Kettle Spoon教程
  9. Java高并发编程实战6,通过AQS源码分析lock()锁机制
  10. C#实战之CAD二次开发005:打印pdf
  11. oracle设置临时表空间,oracle操作临时表空间
  12. android设置字体大小,Android中如何设置字体大小
  13. 苹果官网查询产品的激活日期教程
  14. Excel 2010 多个窗口独立同屏显示方法——修改注册表方法
  15. go语言 第三方包安装方法_【分享吧】Go语言第三方包的使用介绍与场景应用
  16. 硬件知识:内存条出现故障的解决方案!
  17. python 小甲鱼 好不好_小甲鱼零基础入门学习python课后题及答案
  18. 计算机信息管理专业论文初稿,学生信息管理系统论文-初稿.doc
  19. win server 2003 事件查看器中的事件ID
  20. BUUCTF黑客帝国

热门文章

  1. 人工智能python好学吗_人工智能“速成班”Python好学吗 小心别被忽悠了
  2. Vue.js 组件 - 组件间的循环引用
  3. JS的日期操作:String转date日期格式、求日期差
  4. 合理利用“泛在式” - 手机促使人群分化
  5. codeforces E. Placing Rooks
  6. 运用HTML制作简单效果
  7. 中国经济能否率先复苏
  8. 浮点数转换为大写货币金额
  9. 第五章运算符表达式和语句
  10. 动态规划从入门到放弃【1】