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
です。