zl程序教程

您现在的位置是:首页 >  后端

当前栏目

《贝叶斯思维:统计建模的Python学习法》一2.6 M&M豆问题

Pythonamp统计建模学习 思维 2.6 贝叶斯
2023-09-11 14:17:31 时间

本节书摘来自异步社区《贝叶斯思维:统计建模的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://thinkbayes.com/m_and_m.py获得。欲了解更多信息,请参见前言的“代码指南”。


python机器学习数据建模与分析——数据预测与预测建模 机器学习的预测建模在多个领域都具有重要的应用价值,包括个性化推荐、商品搜索、自动驾驶、人脸识别等。本篇文章将带领大家了解什么是预测建模
Python语言如何使用MindOpt建模并求解二次规划问题 MindOpt是一款高效的优化算法软件包,求解算法实现了线性规划(LP)、混合整数线性规划(MILP)、二次规划(QP),可以支持命令行、c、c++、java和python调用。接下来我们将发布一系列文章,讲述各个语言如何使用 MindOpt 来求解数学规划问题。
Python语言如何使用MindOpt建模并求解混合整数线性规划问题 MindOpt是一款高效的优化算法软件包,求解算法实现了线性规划(LP)、混合整数线性规划(MILP)、二次规划(QP),可以支持命令行、c、c++、java和python调用。接下来我们将发布一系列文章,讲述各个语言如何使用 MindOpt 来求解数学规划问题。
线性规划求解第一的MindOpt如何使用Python语言的API建模及优化 MindOpt是一款高效的优化算法软件包,求解算法实现了线性规划(LP)、混合整数线性规划(MILP)、二次规划(QP),可以支持命令行、c、c++、java和python调用。接下来我们将发布一系列文章,讲述各个语言如何使用 MindOpt 来求解数学规划问题
异步社区 异步社区(www.epubit.com)是人民邮电出版社旗下IT专业图书旗舰社区,也是国内领先的IT专业图书社区,致力于优质学习内容的出版和分享,实现了纸书电子书的同步上架,于2015年8月上线运营。公众号【异步图书】,每日赠送异步新书。