
83
83
6.5 Pmf 実装
のコードで使うべきではありません。名前は内容を示しています。すなわち、辞書の
ラッパーです。基本属性は
d
で、値を度数に対応させる辞書です。
値はハッシュ可能な型なら何でもかまいません。度数は整数でなければなりません
が、数値型なら何でもかまいません。
_DictWrapper
は、
Hist
と
Pmf
の両方に適切なメソッド
__init__
,
Values
,
Items
,
Render
を含みます。修飾子メソッド
Set
,
Incr
,
Mult
,
Remove
も含みます。これらのメ
ソッドはすべて辞書演算として実装されています。例えば、次のとおりです。
# class _DictWrapper
def Incr(self, x, term=1):
self.d[x] = self.d.get(x, 0) + term
def Mult(self, x, factor):
self.d[x] = self.d.get(x, 0) * factor
def Remove(self, x):
del self.d[x]
Hist
には、指定した値の度数を調べる
Freq
もあります。
Hist
演算子とメソッドとは辞書に基づいているので、定数時間演算です。すなわち、
Hist
が大きくなっても実行時間は増えません。
6.5
Pmf
実装
Pmf
と
Hist
とは、
Pmf
が値を浮動小数点数の確率に対応させるということを除け
ばほとんど同じです。確率の和が
1
なら、
Pmf
は正規化されています。
Pmf
は、確率の和を計算して、 ...