2.5 封装框架
现在,我们看看框架的哪些元素是相同的,这样我们就可以把它们封装进一个Suite对象,即一个提供__init__,Update和Print方法的pmf对象:
class Suite(Pmf)
“代表一套假设及其概率。”
def __init__(self,hypo=tuple()):
“初始化分配。”
def Update(self,data):
“更新基于该数据的每个假设。”
def Print (self):
“打印出假设和它们的概率。”
Suite的实现在thinkbayes.py中。要使用Suite对象,你应当编写一个继承自Suite的类,并自行提供Likelihood方法的实现。例如,这是一个以蒙蒂大厅问题改写的使用Suite的方案 :
from thinkbayes import Suite
class Monty(Suite):
def Likelihood (self,data,hypo):
if hypo ==data:
return 0
elif hypo=='A':
return 0.5
else:
return 1
而下面是一个使用这个类的代码:
suite=Monty('ABC')
suite.Update('B')
suite.Print()
你可以从http://thinkbayes.com/monty2.py下载这个例子。更多信息见前言的“代码指南”。
时间: 2024-10-25 18:21:18