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

一丶条件概率
条件概率定义:已知事件A发生的条件下,另一个事件B发生的概率成为条件概率,即为P(B|A) 
 
如图A∩B那一部分的发生的概率即为P(AB),

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

P(AB)=P(A)*P(B|A)=P(B)*P(A|B)
1
所以条件概率公式:

P(B|A)=P(AB)/P(A)=P(B)*P(A|B)/P(A)
1
二丶全概率公式
全概率公式就是在样本空间E中,有一个事件A,而样本空间被划分为多个子空间B1,B2,B3…….,对于每一个子空间Bi,发生A事件的概率为:

P(A)=P(Bi)*P(A|Bi)   i=1,2,3......n
也就是:发生Bi的概率*Bi中发生A的概率
1
2
那么整个样本空间E中发生A的概率即为:每一个样本子空间中发生A的概率的总和:

P(A)=P(B1)*P(A|B1)+P(B2)*P(A|B2)+.............+P(Bn)*P(A|Bn)
1
以上就是全概率公式,也可以写作:

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

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

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

发生a事件概率*发生a事件且a时间发生在Bi子样本的概率=发生Bi的概率*发生Bi之后发生a的概率
即为:**P(Bi|A)*P(A)=P(Bi)*P(A|Bi)**
1
2
然后根据全概率公式: 
 
所以:

P(Bi/A)=P(Bi)*P(A|Bi)/P(A)
1
把P(A)带入上面的式子,可得贝叶斯公式:

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

python实现:

#创建一个虚拟的数据
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出现在第三个子集中的概率

多个变量影响概率计算相关推荐

  1. python计算数据百分比_概率计算:定义概率分布数据结构,Python实现概率分布计算...

    使用Python实现马尔科夫随机场.蒙特卡洛采样等随机过程算法的前提,就是用Python实现概率的计算.并不只是数值计算,而是能够将随机模拟中常用的各种概率相关的操作,都能用计算机的数据结构来表达,其 ...

  2. matlab第八章概率计算ppt,Matlab来解决概率统计学ppt

    PPT内容 这是一个关于Matlab来解决概率统计学ppt,主要介绍将利用Matlab来解决概率统计学中的概率分布.数字特征.参数估计以及假设检验等问题.欢迎点击下载哦. 本章将利用Matlab来解决 ...

  3. 高中不学就可以证伪数学公式?(概率计算)

    高中不学就可以证伪数学公式?(概率计算) 条件概率说的是多个事件有先后顺序的发生,前一个事件的已知发生会影响到后面事件发生的概率.并且如果已知的事件在是中间的事件,那么中间的事件不仅会影响前面事件发生 ...

  4. 【数据挖掘】高斯混合模型 ( 与 K-Means 每个步骤对比 | 初始参数设置 | 计算概率 | 计算平均值参数 | 计算方差参数 | 计算高斯分布概率参数 | 算法终止条件 )

    文章目录 I . 高斯混合模型 ( 样本 -> 模型 ) II . 高斯混合模型 ( 模型 -> 样本 ) III . 高斯混合模型 与 K-Means 迭代过程对比 IV . 高斯混合模 ...

  5. SQL Server-聚焦事务对本地变量、临时表、表变量影响以及日志文件存满时如何收缩(三十一)...

    前言 接下来我们将SQL Server基础系列还剩下最后几节内容结束,后续再来讲解SQL Server性能调优,我们开始进入主题. SQL Server事务对本地变量影响 事务对变量影响具体是指什么意 ...

  6. 统计学习方法第十一章作业:随机条件场—概率计算问题、IIS/GD学习算法、维特比预测算法 代码实现

    随机条件场-概率计算问题.IIS/GD学习算法.维特比预测算法 这一章的算法不是很好写,整整研究了好几天,代码还是有点小问题,仅供参考. 用的是书上定义的特征函数. import numpy as n ...

  7. 统计学习方法第十章作业:HMM模型—概率计算问题、Baum-Welch学习算法、维特比预测算法 代码实现

    HMM模型 import numpy as npclass HMM:def __init__(self,A=None,B=None,Pi=None,O = None):if A:self.A = np ...

  8. (四)JS基础知识一(深入分析变量类型和计算)【不会变量,别说你会JS】

    JS基础知识一(变量类型和计算) 提问 变量类型 值类型 vs 引用类型 (堆栈模型) 值类型 引用类型 typeof 运算符 深拷贝 变量计算 字符串拼接 == if语句和逻辑运算 if语句 逻辑判 ...

  9. php概率计算_PHP指定概率算法

    PHP指定概率算法,可用于刮刮卡,大转盘等抽奖算法. 假设:有一个二维数组,记录了所有本次抽奖的奖项信息: $test_arr =array('a'=>20,'b'=>30,'c'=> ...

最新文章

  1. CSS之布局(盒子模型--外边距)
  2. git学习:关于origin和master,自己增加一部分
  3. Android 6.0 权限管理最佳实践
  4. Fiori launchpad里Enter Group name这个tile是怎么配置出来的
  5. pca主成分分析_降维:主成分分析(PCA)
  6. 【报告分享】2020数字人民币发展研究报告.pdf(附下载链接)
  7. python网易云_python 网易云音乐
  8. java实现选择排序(思路与实现)
  9. mcu AD采样值和物理值
  10. 微信发送文件卡死或黑屏
  11. Ubiquitous Religions
  12. html鼠标悬停模糊,模糊效果鼠标悬停清晰
  13. 亚马逊kindle设置_在亚马逊Kindle上追逐活跃的社会工程欺诈
  14. android性能测试自动化,Android App自动化性能测试探究
  15. java实现空格替换
  16. 人脸检测:人脸检测算法综述
  17. 软件限时使用功能实现
  18. 2022年全国大学生数学建模竞赛E题目-小批量物料生产安排详解+思路+Python代码时序预测模型(三)
  19. 大数据24小时:Salesforce拟65亿美元收购Mulesoft,林志颖加盟小黑鱼科技任首席体验官
  20. 【AD】Altium Designer Filter(过滤器)使用技巧

热门文章

  1. poj2253佛洛依德
  2. 工作中的方法论(十)
  3. 研发 Leader 怎样写出非研发也看得懂的年终总结?
  4. .NET中的托管资源与非托管资源
  5. html操作word,javascript 操作Word和Excel的实现代码
  6. MQTT协议:Retain (保留消息)功能分析小结
  7. python画五角星为什么144度_python绘制五角星
  8. jQuery动画效果之-fadeTo
  9. 微博转发话题js代码
  10. mysql least用法_mysql least函数