贝叶斯网(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 ...
随机推荐
- HDU 2005 第几天?(闰年判断)
传送门: acm.hdu.edu.cn/showproblem.php?pid=2005 第几天? Time Limit: 2000/1000 MS (Java/Others) Memory L ...
- PHP中级面试经历
资源来自网络:http://www.2cto.com/kf/201304/204749.html 1.用PHP打印出前一天的时间格式是2006-5-10 22:21:21(2分) 2.echo(),p ...
- U盘安装CentOS7.3教程
0.准备工作: 一台没系统的普通电脑u盘一个(大于1G,最小安装的话不超过1G,根据选择系统大小匹配U盘即可)CentOS7.3 iso文件一个UltraISO工具 1.制作U盘 ①使用UltraIS ...
- bootstrap-table表格导出
在bootstrap-table官网->拓展模块中有导出模块的详细介绍.网址:http://bootstrap-table.wenzhixin.net.cn/zh-cn/extensions/ ...
- http返回值含义
1xx:信息响应类,表示接收到请求并且继续处理2xx:处理成功响应类,表示动作被成功接收.理解和接受 3xx:重定向响应类,为了完成指定的动作,必须接受进一步处理4xx:客户端错误,客户请求包含语法错 ...
- Django url处理
Django如何处理一个请求当一个用户请求Django 站点的一个页面,下面是Django 系统决定执行哪个Python 代码遵循的算法:1:Django 决定要使用的根URLconf 模块.通常,这 ...
- mysql修改登录密码三种方式
一.用SET PASSWORD命令 首先登录MySQL,使用mysql自带的那个客户端连接上mysql. 格式:mysql> set password for 用户名@localhost = ...
- mysql系列一
学习mysql必备工具即安装mysql客户端:mysql安装教程在网上有很多,在此处就不在仔细说明: 下面将仔细介绍一下关于SQL语句: SQL语句:结构化查询语言(Structured Query ...
- linux链路聚合
配置聚合连接(网卡绑定,链路聚合): eth0 ================>>虚拟网卡team eth1 配置聚合连接 [root@Centos7-Server ~]# nmcli ...
- JAVA Web 项目中用到的技术
JSPServletTomcatMySQL MavenSpringMVCHibernatejQueryBootstrapAngularJSBootStrap Table 下边两个是移动APP开发要用到 ...