贝叶斯网(1)尝试用Netica搭建简单的贝叶斯网并使用贝叶斯公式解释各个bar的结果
近来对贝叶斯网十分感兴趣,按照博客《读懂概率图模型:你需要从基本概念和参数估计开始》给出的第一个例子,试着搭建了一个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的结果的更多相关文章
- 贝叶斯网(2)Netica:从数据中学习CPT
1. 离散节点 在官方Tutorial中是有详细的案例的,就是B篇3.3节,你可以动手把天气预报这个实现一下: http://www.norsys.com/tutorials/netica/secB/ ...
- 当我们尝试用JavaScipt测网速
npm包地址 https://www.npmjs.com/package/network-speed-test Github地址 https://github.com/penghuwan/networ ...
- 【记录】尝试用QEMU模拟ARM开发板去加载并运行Uboot,kernel,rootfs【转】
转自:https://www.crifan.com/try_use_qemu_emulate_arm_board_to_load_and_run_uboot_kernel_rootfs/ [背景] 手 ...
- 闲置安卓设备搭建Linux服务器实现外网访问
title: 闲置安卓设备搭建Linux服务器实现外网访问 这是我搭过的第一个博客系统,写贴纪念一下 待博主整理好思路,将今天所用到的全部分享! 好吧,我就是穷.富人靠科技,穷人靠变异.我这种穷人是真 ...
- 【记录】尝试用android-logging-log4j去实现log输出内容到sd卡中的文件的功能
[背景] 折腾: [记录]给Android中添加log日志输出到文件 期间,已经试了: [记录]尝试用android中microlog4android实现log输出到文件的功能 但是不好用. 然后就是 ...
- 尝试用Uplodify
尝试用Uplodify Uplodify官方 前台index代码: @{ Layout = null; } <script src="~/Scripts/jquery-1.8. ...
- 自建yum源解决Ceph搭建过程中从官网取包慢的问题
最近项目组需要ceph环境,第一次搭建ceph,各种不顺,装了卸,卸了装,一遍又一遍地按照官网的操作进行.最气人的是网速差,从官网取包太慢.一轮尝试就浪费一上午. 因此想到本地新建yum源. 首先,按 ...
- Windows 实例搭建的 FTP 在外网无法连接和访问
外网无法连接和访问 Windows 实例搭建的 FTP,这种情况可能是由于以下两种原因导致的: 安全组拦截外网访问 防火墙拦截 FTP 进程 安全组拦截外网访问 这种情况下,可以尝试新建一条入方向的安 ...
- 尝试用React写几个通用组件 - 带搜索功能的下拉列表,开关切换按钮,弹出框
尝试用React写几个通用组件 - 带搜索功能的下拉列表,开关切换按钮,弹出框 近期正在逐步摸索学习React的用法,尝试着写几个通用型的组件,整体项目还是根据webpack+react+css-me ...
随机推荐
- normal 普通身份 sysdba 系统管理员身份 sysoper 系统操作员身份 dba和sysdba
as sysdba 就是以sysdba登录,oracle登录身份有三种:normal 普通身份sysdba 系统管理员身份sysoper 系统操作员身份每种身份对应不同的权限 sysdba权限:●启动 ...
- android 网络技术基础学习 (七)
使用httpclient协议访问网络: public class MainActivity extends Activity implements OnClickListener{ public vo ...
- element 列表中已选的标记
//表格列表中已选的标记initSelFn(data){ let listData = [] listData = data.content ? data.content : []; let ...
- 菜鸟笔记 -- Chapter 4 Java语言基础
在Chapter3中我们写了第一个Java程序Hello World,并且对此程序进行了分析和常见错误解析.那么我们有没有认真观察一下Java程序的基本结构呢?本节我就来聊一下Java程序的基本结构( ...
- iOS之苹果调整 App Store 截图上传规则,截图尺寸、大小等
作者:ASO100链接:https://zhuanlan.zhihu.com/p/23041522来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 自从 8 月中旬苹果向 ...
- Vue--- Vue(Pubsub + Ajax) 数据交互
案例知识点 兄弟组件儿的通信 使用了Pubsub 订阅与发布 ajax数据请求 获取前 获取中 获取后 获取为空 获取异常 获取成功后显示数据给到 原先定义号的 ...
- JS apply 和 call 的实现
很早之前的一篇博客写了bind的实现,是基于apply的,感兴趣的朋友看完这篇文章可以接着看看bind的实现. apply 和 call 主要就是传参的区别.这里就不多说了,直接看代码. //call ...
- 仿LordPE获取PE结构
乍一看LordPE一个小工具一般般,真的动手做起来才知道技术含量高的很. 当前只是获取到PE结构并打印,仅此而已. PE.h #pragma once #include <stdio.h> ...
- 最长公共子序列Lcs (51Nod - 1006)
20180604 11:28 给出两个字符串A B,求A与B的最长公共子序列(子序列不要求是连续的). 比如两个串为: abcicba abdkscab ab是两个串的子序列,ab ...
- Centos防火墙的配置
Selinux的三种模式:enforcing,passive,disable 临时更改模式:setengorce 1|0 1:enforcing, 0:passive [root@C ...