博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
《贝叶斯思维:统计建模的Python学习法》——2.4 Monty Hall难题
阅读量:5822 次
发布时间:2019-06-18

本文共 936 字,大约阅读时间需要 3 分钟。

本节书摘来异步社区《贝叶斯思维:统计建模的Python学习法》一书中的第2章,第2.4节,作者:【美】Allen B. Downey,更多章节内容可以访问云栖社区“异步社区”公众号查看

2.4 Monty Hall难题

为了解决蒙蒂大厅(Monty Hall)问题,我将定义一个新的类:

class monty(Pmf):     def __init__(self,hypos):         Pmf.__init__(self)         for hypo in hypos:             self.Set(hypo,1)         self.Normalize()```到目前为止,蒙蒂大厅和曲奇饼是完全一样的。创建Pmf的代码也一样,除了假设的名称:
hypos='ABC' pmf =Monty(hypos)```

对Update的调用几乎是相同的:

data='B'     pmf.Update(data)```Update的实现也是完全一样的:
def Update (self,data):     for hypo in self.Values ():         like = self.Likelihood(data,hypo)         self.Mult(hypo,like)     self.Normalize()```

唯一需要些额外工作的是Likelihood:

def Likelihood (self,data,hypo):         if hypo==data:             return 0         elif hypo=='A':             return 0.5         else:             return 1```最后,打印输出的结果是一样的:
for hypo,prob in pmf.Items():     print hypo,prob```

答案是

A 0.333333333333

B 0.0
Ç 0.666666666667
在本例中,Likelihood的编写有一点点复杂,但该贝叶斯框架的Update很简单。

转载地址:http://ilddx.baihongyu.com/

你可能感兴趣的文章
Windows Thin PC安装功能组件
查看>>
Linux 高可用集群解决方案
查看>>
[install-pear-installer] Error 127 安装PHP时错误
查看>>
17岁时少年决定把海洋洗干净,现在21岁的他做到了
查看>>
CBO中 SMON 进程与 col_usage$ 的维护
查看>>
linux 启动oracle
查看>>
TeamCity 持续集成在LINUX的安装
查看>>
LOGGING 、FORCE LOGGING 、NOLOGGING、归档模
查看>>
《写给大忙人看的java se 8》笔记
查看>>
我的友情链接
查看>>
Linux学习:Linux基础命令集(1)
查看>>
倒计时:计算时间差
查看>>
Linux/windows P2V VMWare ESXi
查看>>
IEC61850时间质量TimeQuality各个比特位的含义
查看>>
Windows XP倒计时到底意味着什么?
查看>>
tomcat一步步实现反向代理、负载均衡、内存复制
查看>>
CentOS忘记root用户密码,进入单用户模式修改密码
查看>>
运维工程师在干什么学些什么?【致菜鸟】
查看>>
将私有Android工程迁移至GitHub
查看>>
Linux中iptables详解
查看>>