《贝叶斯思维:统计建模的Python学习法》——2.5 封装框架

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

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') 
上一篇:Linux下MeeGo源码下载 — repo+git


下一篇:数据库学习Day6