机器学习&数据挖掘笔记_22(PGM练习六:制定决策)
前言:
本次实验是将一些简单的决策理论和PGM推理结合,实验内容相对前面的图模型推理要简单些。决策理论采用的是influence diagrams,和常见图模型本质一样,
其中的决策节点也可以用CPD来描述,做决策时一般是采用最大期望效用准则(MEU)。实验内容参考参考的内容是coursera课程:Probabilistic Graphical Models中的assignment 5. 实验code可参考网友的:code.
实验中一些函数简单说明:
Fnew = VariableElimination(F, Z):
给定factorlist F和需要消除的变量集Z,采用sum-product的方法消除这些变量后得到factor集Fnew.内部需调用函数EliminateVar()。
EU = SimpleCalcExpectedUtility(I):
实验1的内容。I为influence diagrams中的所有factor,包含I.RandomFactors、 I.DecisionFactors、 I.UtilityFactors三种。计算时可以把RandomFactors和DecisionFactors结合在一起,看出是一个BN,然后对该BN进行变量消除,将那些不是效用节点父节点的变量消除掉,得到的factor中就只包含效用节点父节点了。
最后将其与UtilityFactors相乘就可以得到期望效用了,计算公式如下:

EUF = CalculateExpectedUtilityFactor( I ):
实验2的内容。EUF是指期望效用factor. 将前面的EU计算公式变形后如下:

而所求的EUF就是公式中的:
注意与实验1中的SimpleCalcExpectedUtility()区分开来,这里是消除掉与决策节点无关的那些变量(实验1消除的是与效用节点无关的变量)。所以EUF中的var只剩下决策节点及其父节点。
[MEU OptimalDecisionRule] = OptimizeMEU( I ):
实验3的内容。求的MEU为最大期望效用。除决策factor中的变量外,其它变量组合的每一个assignment下,决策D下的不同决策将得到不同的效用,此
assignment下当然是取效用最大的那个决策。因此这样就好构成一个新的factor,为OptimalDecisionRule.factor中所有的val之和就为MEU. 该函数内部需要调用CalculateExpectedUtilityFactor().
[MEU OptimalDecisionRule] = OptimizeWithJointUtility( I ):
实验4的内容。该实验处理参数和实验3一样,不同的是这里需要处理有多个效用节点的情形。因为效用值具有可加性,所以只需将这些效用节点所在的factor相加起来构成一个新的效用factor,然后直接调用OptimizeMEU()输出就ok了。
[MEU OptimalDecisionRule] = OptimizeLinearExpectations( I ):
实验5的内容。所完成的功能和实验4是一样的,函数接口也相同,只是采用的方法不同。实验4中是先将所有的效用factor相加,然后采用实验3的函数来计算。而实验5是直接将效用计算公式变形,如下:

先将EUF整合,然后采用类似OptimizeMEU()的方法来求解。
相关知识点:
Arrhythmogenic Right Ventricular Dysplasia (ARVD): 心律失常性右室心肌病
implantable cardioverter defibrillator(ICD):植入型心律转复除颤器,与手术治疗ARVD有关。
ARVD的influence diagrams如下:
其中的ARVD变量节点为X,其表示是否得有ARVD;它受先验X3影响;对ARVD的一些观察结果用T表示;决策变量为D(有时候也用A表示),决定是否进行ICD手术,
它与T相关;节点O为是否出现bad outcome,由X和D决定;最后的效用节点D由O和D决定。
简单决策包括下面几个部分:一个动作序列A,一般用矩形表示;一个状态序列X,一般用椭圆表示;一个分布P(X|A);一个效用函数U(X,A);效用节点U一般用菱形表示。
Expected utility(期望效用)表示做出某个决策后的期望效用,效用值不一定是概率,它是一个实数,可以为负。其计算公式如下:

MEU(最大期望效用):也就是说做出某个决策后得到的效用最大。此时的决策a计算公式为:
Information edge:指那些与动作节点相连的状态节点之间的edge.这些information edge构成了一个决策规则,用CPD来描述。有information edge的期望效用计算
公式为:

对应的最大期望效用计算公式为:

决策理论可以将PGM中的一些inference方法引进来。
多属性效用函数(Multi-Attribute Utilities):通常情况下效用值受多个变量影响,可以将这些变量整合到一个效用函数中。关于多属性效用函数更详细的理解可参考网友demonstrate 的 blog:PGM 读书笔记节选(十七).
效用不能单纯从概率上来看,效用函数应该能体现用户对结果的偏好,它一般需考虑做决策时的风险。
VPI(value of perfect information ):增加一条information edge到决策变量前后的MEU变化量。VPI>=0成立。
参考资料:
coursera课程:Probabilistic Graphical Models
Daphne Koller,Probabilistic Graphical Models Principles and Techniques书籍第22章
机器学习&数据挖掘笔记_22(PGM练习六:制定决策)的更多相关文章
- 机器学习&数据挖掘笔记_14(GMM-HMM语音识别简单理解)
为了对GMM-HMM在语音识别上的应用有个宏观认识,花了些时间读了下HTK(用htk完成简单的孤立词识别)的部分源码,对该算法总算有了点大概认识,达到了预期我想要的.不得不说,网络上关于语音识别的通俗 ...
- 机器学习&数据挖掘笔记(常见面试之机器学习算法思想简单梳理)
机器学习&数据挖掘笔记_16(常见面试之机器学习算法思想简单梳理) 作者:tornadomeet 出处:http://www.cnblogs.com/tornadomeet 前言: 找工作时( ...
- [转]机器学习&数据挖掘笔记_16(常见面试之机器学习算法思想简单梳理)
机器学习&数据挖掘笔记_16(常见面试之机器学习算法思想简单梳理) 转自http://www.cnblogs.com/tornadomeet/p/3395593.html 前言: 找工作时(I ...
- 机器学习&数据挖掘笔记_16(常见面试之机器学习算法思想简单梳理)
前言: 找工作时(IT行业),除了常见的软件开发以外,机器学习岗位也可以当作是一个选择,不少计算机方向的研究生都会接触这个,如果你的研究方向是机器学习/数据挖掘之类,且又对其非常感兴趣的话,可以考虑考 ...
- 机器学习&数据挖掘笔记_25(PGM练习九:HMM用于分类)
前言: 本次实验是用EM来学习HMM中的参数,并用学好了的HMM对一些kinect数据进行动作分类.实验内容请参考coursera课程:Probabilistic Graphical Models 中 ...
- 机器学习&数据挖掘笔记_24(PGM练习八:结构学习)
前言: 本次实验包含了2部分:贝叶斯模型参数的学习以及贝叶斯模型结构的学习,在前面的博文PGM练习七:CRF中参数的学习 中我们已经知道怎样学习马尔科夫模型(CRF)的参数,那个实验采用的是优化方法, ...
- 机器学习&数据挖掘笔记_20(PGM练习四:图模型的精确推理)
前言: 这次实验完成的是图模型的精确推理.exact inference分为2种,求边缘概率和求MAP,分别对应sum-product和max-sum算法.这次实验涉及到的知识点很多,不仅需要熟悉图模 ...
- 机器学习&数据挖掘笔记_23(PGM练习七:CRF中参数的学习)
前言: 本次实验主要任务是学习CRF模型的参数,实验例子和PGM练习3中的一样,用CRF模型来预测多张图片所组成的单词,我们知道在graph model的推理中,使用较多的是factor,而在grap ...
- 机器学习&数据挖掘笔记_21(PGM练习五:图模型的近似推理)
前言: 这次练习完成的是图模型的近似推理,参考的内容是coursera课程:Probabilistic Graphical Models . 上次实验PGM练习四:图模型的精确推理 中介绍的是图模型的 ...
随机推荐
- iOS上简单推送通知(Push Notification)的实现
iOS上简单推送通知(Push Notification)的实现 根据这篇很好的教程(http://www.raywenderlich.com/3443/apple-push-notification ...
- App开发如何利用Fidder,在api接口还没有实现的情况下模拟数据,继续开发
相信app开发很多时候,都是等后台出接口,拿到数据调试错误.殊不知,我们完全可以不用等,只要有约定好的接口定义文档,借助工具就能做到,自己模拟数据返回~ 下面主要是在项目组开发过程中,使用F ...
- 找回忘记的Ubuntu用户名和密码
找回忘记的Ubuntu用户名和密码 前端时间使用VMWare安装了个Ubuntn的虚拟机,但是烦于安装后显卡驱动的问题,看着操作界面就有点厌烦,就扔下了.今天打开虚拟机登陆的时候忘了密码,寻思着难道要 ...
- CentOs笔记
系统 CentOs7,最小安装,使用 Ext4,/ ,/boot,/swap 使用标准分区,另一个分区做为数据分区,使用 LVM. 更新: http://mirrors.163.com/.help/c ...
- 可在广域网部署运行的QQ高仿版 -- GG叽叽V3.5,增加自拍头像功能、细节优化(源码)
距离上次发版本(GG叽叽V3.4,增加系统设置.最近联系人.群功能)又有1个月了,在这个月内,由于空闲时间不是很多,所以,GG增加的主要功能只是拍照并设定其为自己头像.修改密码.删除好友.以及一些bu ...
- 【腾讯Bugly干货分享】安卓单元测试:What, Why and How
本文来自于腾讯bugly开发者社区,非经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/57d28349101cd07a5404c415 Dev Club 是一个交流移动 ...
- 手机淘宝UWP
各位园主好! bug 走势: 哪天bug 足够少,哪天就可以发布了 :) 2015/10/23: 49 2015/10/26: 40 2015/10/27: 36 2015/10/28: 30 20 ...
- MySQL1:MySQL函数汇总
前言 MySQL提供了众多功能强大.方便易用的函数,使用这些函数,可以极大地提高用户对于数据库的管理效率,从而更加灵活地满足不同用户的需求.本文将MySQL的函数分类并汇总,以便以后用到的时候可以随时 ...
- Fluxion 实战答疑
实战文章<实战-Fluxion与wifi热点伪造.钓鱼.中间人攻击.wifi破解>发布之后,大家响应热烈,不过也遇到了很多问题.微信后台被各种提问挤爆了,于是抓紧时间出了这篇答疑. 0x0 ...
- angularjs之browserTrigger
今天推荐一款来自angularjs源码的单元测试辅助库browserTrigger,这是来自于ngScenario的一段代码.主要用户触发浏览器型行为更新ng中scope view model的值. ...