开发者社区> 异步社区> 正文

《贝叶斯思维:统计建模的Python学习法》——2.4 Monty Hall难题

简介:
+关注继续查看

本节书摘来异步社区《贝叶斯思维:统计建模的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很简单。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
算法学习之路|打印沙漏
本题要求你写个程序把给定的符号打印成沙漏的形状。例如给定17个“*”,要求按下列格式打印
1277 0
它来了!天池赛题解析第二弹——深度学习篇它带着案例来了!
阿里云天池团队在推出了国内第一本针对竞赛实操的图书之后重新出发,立足实际案例、剖析解决方案再次推出了深度学习好书:《阿里云天池大赛赛题解析——深度学习篇》。
80 0
+关注
异步社区
异步社区(www.epubit.com)是人民邮电出版社旗下IT专业图书旗舰社区,也是国内领先的IT专业图书社区,致力于优质学习内容的出版和分享,实现了纸书电子书的同步上架,于2015年8月上线运营。公众号【异步图书】,每日赠送异步新书。
12049
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
JS零基础入门教程(上册)
立即下载
性能优化方法论
立即下载
手把手学习日志服务SLS,云启实验室实战指南
立即下载