近来对贝叶斯网十分感兴趣,按照博客《读懂概率图模型:你需要从基本概念和参数估计开始》给出的第一个例子,试着搭建了一个student网。

(1)点击绿F,对条件概率表予以输入(包括两个祖先节点difficulty和intelligence,这两个节点的绿F输入将会显现在柱状图面版上,其它CPT输入则不显示在面版,仅在点击黄色闪电后自动计算得到)。

(2)现以SAT为例说明为什么p(SAT=low)=0.725:

已知先验概率:p(intelligence=bad)=0.7,p(intelligence=good)=0.3

根据CPT可知likelihood:

p(SAT=low|intelligence=bad)=0.95

p(SAT=low|intelligence=good)=0.2

p(SAT=high|intelligence=bad)=0.05

p(SAT=high|intelligence=good)=0.8

故可以计算evidence如下:

p(SAT=low)=$∑_{intelligence}$ p(SAT=low,intelligence)

=p(SAT=low,intelligence=good)+p(SAT=low,intelligence=bad)

=p(SAT=low|intelligence=good)p(intelligence=good)

+p(SAT=low|intelligence=bad)p(intelligence=bad)

=0.2*0.3+0.95*0.7=0.725

p(SAT=high)=1-p(SAT=low)=0.275

(3)现给定证据SAT=low,并将该证据嵌入到先验概率p(intelligence=bad/good)中去,求p(intelligence=bad|SAT=low)和p(intelligence=good|SAT=low):

由(2)知p(SAT=low)=0.725

p(intelligence=bad|SAT=low)=p(intelligence=bad,SAT=low)/ p(SAT=low)

=(0.95*0.7)/0.725=0.917

p(intelligence=good|SAT=low)=1- p(intelligence=bad|SAT=low)=0.083

因此在给子节点SAT的值进行设定以后(变灰以后),现在显示在父节点Intelligence柱状图面板的结果实际上是嵌入证据以后的后验概率p(intelligence|SAT=low)(但是如果你点击绿F查看Intelligence可以发现表格所显示的先验概率的值p(intelligence)还是保持不变,为0.7和0.3)

(4) uncertain evidence (BRML: 3.2.1 Uncertain evidence)

y为硬证据,y~为软证据。p(y|y~)是“硬证据确实成立”的概率。以Gibbon太太为例:

“100%确定听到报警”是硬证据(y=1),“0%确定听到报警(没听到报警)”同样是硬证据(y=0);

“80%确定听到报警”是软证据(y~),硬证据y=1确实成立的概率p(y=1|y~)为80%,硬证据y=0确实成立的概率p(y=0|y~)=20%。

——————

在(3)里我们是将“SAT考了低分”作为证据嵌入的,此时“SAT低分”是确凿无疑的(称之为“硬证据”)。现在仍然以SAT成绩和智力水平为例,当我不知道我的智力水平,且SAT成绩还没出来,但是我刚刚考完SAT,对自己考了多少分有个大概的估计(以下图为例:我仅有33.7%的把握我SAT考的不错),那么这个“不确定成绩”也是可以作为证据嵌入的,称之为“软证据”。现在我们希望计算嵌入软证据后的后验概率p(intelligence|SAT~)。

软证据如下:

66.3%确定SAT=low——p(SAT=low|SAT~)=0.663

33.7%确定SAT=high——p(SAT=high|SAT~)=0.337

由上面的公式:

p(intelligence=bad|SAT~)=$∑_{SAT}$ p(intelligence=bad|SAT)p(SAT|SAT~)

= p(intelligence=bad|SAT=low)p(SAT=low|SAT~)

+ p(intelligence=bad|SAT=high)p(SAT=high|SAT~)

=0.917*α+0.127(1-α)

=0.917*0.663+0.127*0.337

=0.651

(其中α=0.663,为“SAT考低分的确信程度”)

(红色部分即(3)中算出的结果,绿色部分我还没有算,可以用类似的方法手算得出,也可以简单地在SAT面板上将high的柱状图拉到100%再看intelligence面板上bad的显示值)

2018.9.20

by 悠望南山

贝叶斯网(1)尝试用Netica搭建简单的贝叶斯网并使用贝叶斯公式解释各个bar的结果的更多相关文章

  1. 贝叶斯网(2)Netica:从数据中学习CPT

    1. 离散节点 在官方Tutorial中是有详细的案例的,就是B篇3.3节,你可以动手把天气预报这个实现一下: http://www.norsys.com/tutorials/netica/secB/ ...

  2. 当我们尝试用JavaScipt测网速

    npm包地址 https://www.npmjs.com/package/network-speed-test Github地址 https://github.com/penghuwan/networ ...

  3. 【记录】尝试用QEMU模拟ARM开发板去加载并运行Uboot,kernel,rootfs【转】

    转自:https://www.crifan.com/try_use_qemu_emulate_arm_board_to_load_and_run_uboot_kernel_rootfs/ [背景] 手 ...

  4. 闲置安卓设备搭建Linux服务器实现外网访问

    title: 闲置安卓设备搭建Linux服务器实现外网访问 这是我搭过的第一个博客系统,写贴纪念一下 待博主整理好思路,将今天所用到的全部分享! 好吧,我就是穷.富人靠科技,穷人靠变异.我这种穷人是真 ...

  5. 【记录】尝试用android-logging-log4j去实现log输出内容到sd卡中的文件的功能

    [背景] 折腾: [记录]给Android中添加log日志输出到文件 期间,已经试了: [记录]尝试用android中microlog4android实现log输出到文件的功能 但是不好用. 然后就是 ...

  6. 尝试用Uplodify

    尝试用Uplodify     Uplodify官方 前台index代码: @{ Layout = null; } <script src="~/Scripts/jquery-1.8. ...

  7. 自建yum源解决Ceph搭建过程中从官网取包慢的问题

    最近项目组需要ceph环境,第一次搭建ceph,各种不顺,装了卸,卸了装,一遍又一遍地按照官网的操作进行.最气人的是网速差,从官网取包太慢.一轮尝试就浪费一上午. 因此想到本地新建yum源. 首先,按 ...

  8. Windows 实例搭建的 FTP 在外网无法连接和访问

    外网无法连接和访问 Windows 实例搭建的 FTP,这种情况可能是由于以下两种原因导致的: 安全组拦截外网访问 防火墙拦截 FTP 进程 安全组拦截外网访问 这种情况下,可以尝试新建一条入方向的安 ...

  9. 尝试用React写几个通用组件 - 带搜索功能的下拉列表,开关切换按钮,弹出框

    尝试用React写几个通用组件 - 带搜索功能的下拉列表,开关切换按钮,弹出框 近期正在逐步摸索学习React的用法,尝试着写几个通用型的组件,整体项目还是根据webpack+react+css-me ...

随机推荐

  1. mobienet, shufflenet

    参考github上各位大神的代码 mobilenet和shufflenet,实现起来感觉还是各种问题. mobilenet目前使用的代码来自这里:https://github.com/BVLC/caf ...

  2. 开发工具--Eclipse使用及常见问题解决

    怎么查询Eclipse版本号: 方法一: 方法二: Eclipse安装目录下面找到readme文件夹,里边有个网页打开就可以看到当前版本; Eclipse汉化改为英文: Eclipse Mybatis ...

  3. iOS | 地图定位

    在IOS开发中,最常见的功能之一就是地图定位功能,不单单是百度地图,高德地图等专业的地图导航软件,还有美团,咕咚等一些美食购物类和运动类也需要这样的功能,所以学会这项技能是一名IOS开发工程师必须的. ...

  4. 通过xshell在linux上安装tomcat8

    通过xshell在linux上安装tomcat8 0)去官网下载linux版压缩包(点击去下载) 1)创建存放tomcat的文件夹 mkdir /usr/tomcat 2)通过xftp将其放置到指定文 ...

  5. CentOS7.2中安装MongoDB

    MongoDB是由C++编写的NoSQL的分布式文件数据库,用的json格式的k-value存储方式. MongoDB官网 https://www.mongodb.com 一.下载和安装 下载完后文件 ...

  6. 解决每次运行Xcode,都需要输入密码的问题

    新买的Mac,在安装了 Xcode 7.1的时候,不知道是配置信息哪里手残了一下,导致每次运行Xcode模拟器 后 都需要输入一次密码. 为此在网上也是查阅了不少的资料,当时 所谓的 XCode--- ...

  7. Django之模型---ORM简介

    ORM ORM,是“对象-关系-映射”的简称,它实现了数据模型与数据库的解耦,即数据模型的设计不需要依赖于特定的数据库,通过简单的配置就可以轻松更换数据库,这极大的减轻了开发人员的工作量,不需要面对因 ...

  8. Vue简单使用,

    一些零碎的知识点: 在js中变量的声明 有三种方式: let,var, const let: 对应的是一个块级作用域 { let a = 12 } console.log(a) 这是未声明的, var ...

  9. 析构函数的调用与return语句

    老师在课堂上讲到了return语句在执行时会自动调用对象的析构函数.我编写了下述代码测试发现整个程序析构函数调用次数与构造函数不等,这样难道不会产生内存泄漏吗? 源代码如下: #include < ...

  10. 嵌入式框架Zorb Framework搭建七:任务的实现

    我是卓波,我是一名嵌入式工程师,我万万没想到我会在这里跟大家吹牛皮. 嵌入式框架Zorb Framework搭建过程 嵌入式框架Zorb Framework搭建一:嵌入式环境搭建.调试输出和建立时间系 ...