確率的グラフィカルモデルをパラメータ化するためにpymcをどのように使用できますか?
X
2 つのノードとを持つ PGM があるとしY
ます。X->Y
グラフだとしましょう。
AndX
は 2 つの値{0,1}
を取り、
Y
また 2 つの値も取ります{0,1}
。
pymc を使用して分布のパラメーターを学習し、それをグラフィカル モデルに入力して推論を実行したいと考えています。
私が考えることができる方法は次のとおりです。
X_p = pm.Uniform("X_p", 0, 1)
X = pm.Bernoulli("X", X_p, values=X_Vals, observed=True)
Y0_p = pm.Uniform("Y0_p", 0, 1)
Y0 = pm.Bernoulli("Y0", Y0_p, values=Y0Vals, observed=True)
Y1_p = pm.Uniform("Y1_p", 0, 1)
Y1 = pm.Bernoulli("Y1", Y1_p, values=Y1Vals, observed=True)
ここY0Vals
に、値 = 0に対応する値と、値 = 1 にY
対応する値があります。X
Y1Vals
Y
X
計画は、これらから MCMC サンプルを抽出し、 および の手段を使用してY0_p
、Y1_p
離散ベイジアン ネットワークの確率を設定するP(X) = (X_p,1-X_p)
ことです...したがって、 while の確率表はP(Y/X)
:
Y 0 1
X
0 Y0_p 1-Y0_p
1 Y1_p 1-Y1_p
質問:
- これはこれを行う正しい方法ですか?
- 特に
X
数百の離散値がある場合、これは不器用になりませんか? または、変数に 2 つの親がX
ありY
、それぞれに 10 個の離散値がある場合は? - 私にできるもっと良いことはありますか?
- この種の相互接続を行う方法を詳しく説明している良い本はありますか?