今回は「Pythonで具体的に説明・導出するベイズ推定!〜その1〜」の続き、その2を書いていきます。具体例と共に出来るだけわかりやすく説明していきます!
前回は、ベイズ推定導出の前段階として、
・同時確率(同時分布)
・Marginalizaion(周辺化)
について実装と共に説明しました。
今回も、ベイズ推定の導出に向けて頑張ります。
目的
使用したもの
実験の流れ
・条件付き確率
・ベイズの定理
※今回は条件確率しか説明できませんでした。ベイズの定理は〜その3〜で
では、Let's 実験!
条件付き確率(Conditional probability)
条件付き確率とは、例えば、y=y1に固定された状態でのxの確率のことを指します。
以下の図で説明していきます。
y=y1に固定したxの取りうる値は図の上の線を指します。
y=y2の場合は下の線となります。
ただし、これでは確率とはなりません!
「それは、確率分布とは全てを積分して1にならないといけないからです!」
下の図の同時分布では、xとy全ての成分を足して1になる様に正規化されています。なので、yを1つ固定した断面を取ってきただけでは足して断面が足して1になることはありません。そこで1つの断面を正規化しなくてはなりません。その正規化の式が次の様になります。
分子のは断面を取り出した部分になります。(は固定されたy1, y2, y3, ...とする)
分母は正規化するための式です。この式はyで固定したy(y1など)がどれぐらい取りやすいか です。ここで出てくるのが周辺化です。yを固定してxについて積分しているのが分母の計算でこれは周辺化と同じ計算をしています。
教科書などに出てくる式が次の式です。
xとyの同時分布をyの周辺化で割る、これが条件付き確率となります。
この式の分母を両辺にかけたものも教科書等に登場します。
xについても同様に次の様にかけます。
では、前回と同じ確率変数で実装していきます。
使用する確率変数は学校まで行くのに、どんな人が(Y)、どの交通方法(X)を使用しているのかを確率で表現しています。
Y: 男性、女性、教員
X: 自転車、徒歩、電車、車
条件付き確率なので、yを女性に固定した際の確率を計算します。
if __name__ == "__main__" :
argvs = sys.argv
P = [[0.15, 0.1, 0.1, 0.01], [0.1, 0.2, 0.05, 0.04], [0.05, 0, 0.1, 0.1]]
Y = ["男子", "女子", "教員"]
X = [" ", "自転車", "徒歩", "電車", "車"]
for str in X:
print str,
print "\n",
for i, y in enumerate(P):
print Y[i],
for x in y:
print x,
print "\n",
print "\n",
print "同時確率(同時分布)"
print "P(Y=2, X=0) = ", P[2][0]
print "P(Y=1, X=3) = ", P[1][3]
print "=================="*3
print "Marginalizaion(周辺化)"
Pr = [0 for i in range(len(P[0]))]
print Pr
for i, y in enumerate(P):
for j, x in enumerate(y):
Pr[j] += x
print "Pr(x) = ", Pr
print ""
Pr = [0 for i in range(len(P))]
print Pr
for i, y in enumerate(P):
for j, x in enumerate(y):
Pr[i] += x
print "Pr(y) = ", Pr
print "=================="*3
print "条件付き確率"
total = 0
for i in range(4):
conditional_probability = P[1][i] / sum(P[1])
total += conditional_probability
print conditional_probability
print total
出力結果
自転車 徒歩 電車 車
男子 0.15 0.1 0.1 0.01
女子 0.1 0.2 0.05 0.04
教員 0.05 0 0.1 0.1
同時確率(同時分布)
P(Y=2, X=0) = 0.05
P(Y=1, X=3) = 0.04
======================================================
Marginalizaion(周辺化)
[0, 0, 0, 0]
Pr(x) = [0.3, 0.30000000000000004, 0.25, 0.15000000000000002]
[0, 0, 0]
Pr(y) = [0.36, 0.39, 0.25]
======================================================
条件付き確率
P(x|y) 0.25641025641
P(x|y) 0.512820512821
P(x|y) 0.128205128205
P(x|y) 0.102564102564
total 1.0
女性を固定した時の自転車、徒歩、電車、車の確率を計算しました。
つまり、女性の自転車、徒歩、電車、車の使用率を計算したことになります!
合計も1.0担っており、正規化されていることが証明されました。
今回も条件付き確率の説明が長くなってしまったため、次の〜その3〜でベイズ推定を説明したいと思います、
記事が長くなって申し訳ありません!
今回も呼んで下さりありがとうございました!