博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
《贝叶斯思维:统计建模的Python学习法》——2.6 M&M豆问题
阅读量:5941 次
发布时间:2019-06-19

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

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

2.6 M&M豆问题

我们可以使用Suite框架来解决M&M豆的问题。除了编写Likelihood有点棘手,其他一切都很简单。

首先,需要对1995年之前和之后的颜色混合情况进行封装:

mix94=dict(brown= 30,           yellow= 20,           red= 20,           green= 10,           orange= 10,           tan= 10)     mix96=dict(blue= 24,               green= 20,               orange= 16,               yellow= 14,               red= 13,               brown= 13)```然后,封装假设:
hypoA =dict(bag1 = mix94,bag2 = mix96) hypoB =dict(bag1 = mix96,bag2 = mix94)```

hypoA表示假设袋1是1994年,袋2是1996年。hypoB是相反的组合。

接下来,从假设的名称来映射其含义:

hypotheses=dict(A=hypoA,B=hypoB)```最后,开始编写Likelihood。在这种情况下,假设hypo是一个A或B的字符串,数据是一个指定了袋子年份和颜色的元组。

def Likelihood(self, data, hypo):

bag, color = data  mix = self.hypotheses[hypo][bag]  like = mix[color]  return like```

下面是创建该suite对象并进行更新的代码:

suite = M_and_M('AB')    suite.Update(('bag1', 'yellow'))    suite.Update(('bag2', 'green'))     suite.Print()```结果如下:

A 0.740740740741

B 0.259259259259`
A的后验概率大约是20/27,正是我们之前得到的。

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

你可能感兴趣的文章
soapUI的简单使用(webservice接口功能测试)
查看>>
框架 Hibernate
查看>>
python-while循环
查看>>
手机端上传图片及java后台接收和ajaxForm提交
查看>>
【MSDN 目录】C#编程指南、C#教程、ASP.NET参考、ASP.NET 4、.NET Framework类库
查看>>
jquery 怎么触发select的change事件
查看>>
angularjs指令(二)
查看>>
(原創) 如何建立一个thread? (OS) (Linux) (C/C++) (C)
查看>>
<气场>读书笔记
查看>>
领域驱动设计,构建简单的新闻系统,20分钟够吗?
查看>>
web安全问题分析与防御总结
查看>>
React 组件通信之 React context
查看>>
ZooKeeper 可视化监控 zkui
查看>>
Linux下通过配置Crontab实现进程守护
查看>>
ios 打包上传Appstore 时报的错误 90101 90149
查看>>
Oracle推出轻量级Java微服务框架Helidon
查看>>
密码概述
查看>>
autoconf,automake,libtool
查看>>
jQuery的技巧01
查看>>
基于泛型实现的ibatis通用分页查询
查看>>