機械学習基礎理論独習

誤りがあればご指摘いただけると幸いです。数式が整うまで少し時間かかります。リンクフリーです。

勉強ログです。リンクフリーです
目次へ戻る

【Python実装】遷移核

問題

毎日、同じメニューでは飽きるので、ランチメニューの変更が表の遷移核に従っているとする。
初日のラーメン、カレー、焼きそばの確率が0.3,0.2,0.5のとき、
10日目までのラーメン、カレー、焼きそばの確率を求めよ。

f:id:olj611:20210504131325p:plain:w500

ソース

###############################
#           遷移核
###############################
import numpy as np
import matplotlib.pyplot as plt

# 遷移回数
N = 9

# 遷移核
F = np.array([[0.2, 0.2, 0.6],
              [0.1, 0.6, 0.3],
              [0.3, 0.5, 0.2]])

# 初期状態
y = np.array([[0.3, 0.2, 0.5]])
#y = np.array([[0.6, 0.2, 0.2]])    # 異なる初期値1
#y = np.array([[0.0, 0.8, 0.2]])    # 異なる初期値2

# 遷移する
for _ in range(N):
    y = np.append(y, (y[-1] @ F).reshape(1,3), axis=0)
print(y)

# グラフ作成用のxを発生
x = range(1, N + 2) # 1~N+1まで1刻み

# 描画
plt.xticks(range(1, N + 2))
plt.ylim(0, 1.0)
plt.xlabel('day')
plt.ylabel('probability')
plt.plot(x, y[:,0], label = 'ramen')    # ラーメンの遷移を描画
plt.plot(x, y[:,1], label = 'curry')    # カレーの遷移を描画
plt.plot(x, y[:,2], label = 'yakisoba') # 焼きそばの遷移を描画
plt.legend()    # グラフの凡例
plt.show()

f:id:olj611:20210504122728p:plain
f:id:olj611:20210504122735p:plain

偉人の名言

f:id:olj611:20210504123411p:plain:w300
苦しいという言葉だけはどんなことがあっても言わないでおこうじゃないか。
高杉晋作

参考文献

基礎からのベイズ統計学

動画

目次へ戻る