
2.6
M&M'S
問題
■
17
class Suite(Pmf):
"""
仮説とその確率のスイートを表す
"""
def
__
init
__
(self, hypo=tuple()):
"""
分布を初期化する
"""
def Update(self, data):
"""
データに基づいて各仮説を更新する
"""
def Print(self):
"""
仮説とその確率を出力する
"""
Suite
の実装は
thinkbayes.py
にある。
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
からダウンロードできる。詳細につい
ては、まえがきの「コードについて」(
ix
ページ)を参照のこと。
2.6
M&M'S
問題
フレームワーク
Suite
を使って
M&M'S
問題を解くことができる。関数
Likelihood ...