1. 贝叶斯网络

贝叶斯网络(Bayesian network),又称信念网络(Belief Network),或有向无环图模型。它用网络结构代表领域的基本因果知识。

贝叶斯网络中的节点表示命题(或随机变量),认为有依赖关系(或非条件独立)的命题用箭头来连接。

令G = (I,E)表示一个有向无环图(DAG),其中I代表图形中所有的节点的集合,而E代表有向连接线段的集合,且令X = (Xi), i ∈ I为其有向无环图中的某一节点i所代表的命题,则节点X的联合概率可以表示成:

其中Pa(i)是i的父结点,是i的因。联合概率可由各自的局部条件概率分布相乘得出:

p(x1,…,xk)=p(xk|x1,….,xk-1)…p(x2|x1)p(x1)

这里顺便说一下朴素贝叶斯,由于其中各个变量x相互独立p(x2|x1)=p(x2),得出:

p(x1,…,xk)=p(xk)…p(x2)p(x1)

因此说朴素贝叶斯是贝叶斯网络的一种特殊情况。

2. 例程

(1) 功能

eBay的Bayesian-belief-networks是一个贝叶斯网络的python工具包,此例为使用该库解决蒙提霍尔三门问题。

(2) 问题描述

蒙提霍尔是概率中的经典问题,出自美国的电视游戏节目。问题的名字来自该节目的主持人蒙提•霍尔(Monty Hall)。参赛者会看见三扇关闭了的门,其中一扇的后面有一辆汽车,选中后面有车的那扇门可赢得该汽车,另外两扇门后面则各藏有一只山羊。当参赛者选定了一扇门,但未去开启它的时候,节目主持人开启剩下两扇门的其中一扇,露出其中一只山羊(主持人不会打开有车的那扇门)。主持人其后会问参赛者要不要换另一扇仍然关上的门。问题是:换另一扇门会否增加参赛者赢得汽车的机率?答案是:不换门的话,赢得汽车的几率是1/3。换门的话,赢得汽车的几率是2/3。

这是为什么呢?接着往下看。

(3) 下载安装

$ git clone https://github.com/eBay/bayesian-belief-networks

(4) 代码

from bayesian.bbn import build_bbn

def f_prize_door(prize_door):

return 0.33333333

def f_guest_door(guest_door):

return 0.33333333

def f_monty_door(prize_door, guest_door, monty_door):

if prize_door == guest_door: # 参赛者猜对了

if prize_door == monty_door:

return 0 # Monty不会打开有车的那扇门,不可能发生

else:

return 0.5 # Monty会打开其它两扇门,二选一

elif prize_door == monty_door:

return 0 # Monty不会打开有车的那扇门,不可能发生

elif guest_door == monty_door:

return 0 # 门已经由参赛者选定,不可能发生

else:

return 1 # Monty打开另一扇有羊的门

if __name__ == '__main__':

g = build_bbn(

f_prize_door,

f_guest_door,

f_monty_door,

domains=dict(

prize_door=['A', 'B', 'C'],

guest_door=['A', 'B', 'C'],

monty_door=['A', 'B', 'C']))

g.q()

g.q(guest_door='A')

g.q(guest_door='A', monty_door='B')

(5) 运行结果

(6) 分析

程序中构建的贝叶斯网络如下图所示。

先看看库是如何使用的,首先通过三个判别函数(节点对应的是判别函数,并不对应三个门)以及它们之间的依赖关系定义了网络g的结构,节点和连线关系是程序员根据业务逻辑定义的。而机器用来优化和计算在给定的条件下产生结果的概率。

prize_door和guest_door都是随机的,所以概率都是0.333;而主持人知道哪扇门后是奖,所以monty_door由另外两个结点(父结点)决定的,当参赛者猜对时,Monty会打开另两门之一,没猜对时Monty只能打开另一扇有羊的门。

从运行结果可以看到:先验是随机抽取的0.333,随着限制条件依次加入,不确定性逐渐变小,最终,参赛者如果选择换门(C)的赢率变为不换门(A)的两倍。

贝叶斯网络python实现_机器学习_统计模型之(二)贝叶斯网络相关推荐

  1. 李宏毅_机器学习_作业1(详解)_COVID-19 Cases Prediction (Regression)

    李宏毅_机器学习_作业1:COVID-19 Cases Prediction (Regression) 本文旨在,读懂hw1代码.李宏毅老师作业的完成有一个默认前提,掌握python基础语法,pyto ...

  2. 小象学院python量化金融代码_机器学习_小象学院课件与案例代码

    [实例简介]机器学习_小象学院课件与案例代码 [实例截图] [核心代码] 1.机器学习与数学分析.pdf 2.概率论与贝叶斯先验.pdf 3.矩阵和线性代数.pdf 4.Python_代码.zip 4 ...

  3. 机器学习 贝叶斯方法_机器学习中的常客与贝叶斯方法

    机器学习 贝叶斯方法 There has always been a debate between Bayesian and frequentist statistical inference. Fr ...

  4. Python数据挖掘与机器学习_通信信用风险评估实战(1)——读数据

    案例及数据说明 本选题用到的数据包括公共数据集.用户通话数据.违约行为数据. 训练集数据:用户通话数据(201703-201706),违约行为数据(201707),公共数据-基本信息(201703-2 ...

  5. Python数据分析与机器学习实战<十>贝叶斯算法

    目录 贝叶斯算法概述 贝叶斯要解决的"逆概"问题 正向概率: 逆向概率:(也就是贝叶斯解决的问题) 为什么使用贝叶斯? 贝叶斯推导实例 贝叶斯公式 贝叶斯--"拼写纠正& ...

  6. moore 数据集_警报数据集(alarm dataset)_机器学习_科研数据集

    警报数据集 (alarm dataset) 数据摘要: The following datasets were used in Moore and Wong (2003), Optimal Reins ...

  7. 李宏毅_机器学习_作业3(详解)_HW3 Image Classification

    目录 Baseline Simple 解决了一个bug Medium data augmentation transforms_01 Transforms_02 Strong Residual Net ...

  8. svm兵王_机器学习_中国大学MOOC(慕课)

    2016年,人工智能机器人AlphaGO击败了围棋世界冠军李世石,这场史无前例的"人机大战"将AI置于社会舆论的风口浪尖上.AI是什么?AI对人类有哪些作用?AI在未来社会中会扮演 ...

  9. ubuntu常用软件安装_机器学习_第一部分纯命令版本

    第一部分:纯命令版本(整理自第二部分) sudo apt-get install python-dev sudo apt-get install python-pip sudo apt-get ins ...

最新文章

  1. android eclipse 环境
  2. JS判断提交表单不能为空 等的验证
  3. 背景建模--Vibe 算法优缺点分析
  4. 从0开始利用宝塔linux面板+WordPress一键部署搭建个人的博客介绍
  5. Pixhawk代码分析-启动代码及入口函数
  6. 最新版dotnet-cli下的ASP.NET Core和asp.net mvc【RC2尝鲜】
  7. php设计者,PHP设计者---composer
  8. SpringBoot Starter自动装配的原理
  9. 软件开发需求整理概要
  10. 计算机硬盘分区重置,重置计算机磁盘分区后如何恢复丢失的数据
  11. 组播负载分担、静态组播路由和MBGP技术原理
  12. AXI总线(top)
  13. 关于pr(premier)2020不能使用beat edit的解决方法
  14. 分享微云普通用户不限速下载方法
  15. 服务器资源下载简单实现
  16. 将ajax的值传给控制器,ASP.Net C#MCV - 将值从Ajax Jquery传递给Controller(示例代码)
  17. gr-osmosdr的安装
  18. 第5章 条件、循环及其他语句
  19. dnf压爆服务器挑战网站,DNF手游压爆服务器挑战网址分享
  20. Handsontable JavaScript Excel Crack

热门文章

  1. 《精通CSS》第4章 网页排版
  2. 建筑行业政策密集发布!今年建筑行业人才需求攀升
  3. “美国饿了么”DoorDash完成6亿美元融资 估值升至126亿美元
  4. 智慧消防、事件管理、维保巡检、应急管理、培训管理、值班管理、考试管理、设备列表、机构管理、应急预案、axure原型、rp原型
  5. 计算机wps基础知识试题,计算机一级考试计算机基础及wpsoffice应用试题.doc
  6. asynchronous socket error 10053 socket和http的区别
  7. 用Excel做账,如何做到简洁明了
  8. 现代控制理论——离散系统,时变系统和非线性系统的状态空间表达式
  9. Navicat Premium 12 破解方法
  10. 中兴交换机如何清空配置