歩いたら休め

If the implementation is easy to explain, it may be a good idea.

【機械学習】『続・わかりやすいパターン認識』第2章のベイズ更新(ベイズ学習)のシミュレーション

一回ちゃんと勉強しようと思って『続・わかりやすいパターン認識―教師なし学習入門―』を勉強しています。とりあえず図を本の中で描かれてるグラフを再現しながら勉強しています。

 

from matplotlib.pyplot import *
import numpy as np
np.random.seed(10) #ランダム関数のシード

#ベイズ学習の関数
def bayes_learning(data_list,side):
    if side == "H":
        numerator = prior_prob * head_prob
    elif side == "T":
        numerator = prior_prob * (1 - head_prob)
    else:
        pass
    posterior_prob = numerator / numerator.sum()
    return posterior_prob

#コイントスのシミュレーション
results = ""
prob = 0.6
for i in np.random.random(100):
    if i < prob:
        results += "H"
    else:
        results += "T"
#print(results) #事前学習の初期値 prior_prob = np.array([0.1, 0.4, 0.5]) head_prob = np.array([0.8, 0.6, 0.3]) tmp = np.array([prior_prob])
#コインの裏表を学習 for side in results: prior_prob = bayes_learning(prior_prob,side) tmp = np.append(tmp, prior_prob) tmp = tmp.reshape(101,3) plot(tmp) show()

 

これをすると34ページの図が出ます。

f:id:takeshi0406:20150606171227p:plain

 

詳細の説明はダルいので本を買ってください。

続・わかりやすいパターン認識―教師なし学習入門―

続・わかりやすいパターン認識―教師なし学習入門―