Pythonで条件付き確率を保存して使用するための良い方法を探しています。
データフレームの使用を考えていpandasます。一部の条件付き確率がXなどの場合P(X=A|P1=1, P2=1) = 0.2、P(X=B|P1=2, P2=1) = 0.9データフレームを使用します
A B
P1 P2
1 1 0.2 0.8
2 0.5 0.5
2 1 0.9 0.1
2 0.9 0.1
P1とP2シリーズとしての周辺確率を考えると
1 0.4
2 0.6
Name: P1
1 0.7
2 0.3
Name: P2
Xの周辺確率のシリーズ、つまりシリーズを取得したい
A 0.602
B 0.398
Name: X
欲しいものが手に入る
X = sum(
sum(
X.xs(i, level="P1")*P1[i]
for i in P1.index
).xs(j)*P2[j]
for j in P2.index
)
X.name="X"
xsしかし、これはより多くの依存関係に簡単に一般化することはできません。最初の依存関係と2番目の依存関係の非対称性levelは奇妙に見えます。いつものように、作業するときpandasは、そのトリックと方法を使用したより良い解決策があると確信しています。
これにはpandas良いツールです。データを別の方法で表す必要があります。この計算を行うための最良の方法は何ですか。これは、本質的にインデックス付きテンソル積pandasです。