题目:
代码如下:
import numpy as np
A = np.array([[0.5, 0.2, 0.3], [0.3, 0.5, 0.2], [0.2, 0.3, 0.5]])
B = np.array([[0.5, 0.5], [0.4, 0.6], [0.7, 0.3]])
pi = np.array([0.2, 0.4, 0.4])
T = 4
o = ['红', '白', '红', '白']
o_map = {'红': 0, '白': 1}
beta4 = np.array([1, 1, 1])
beta3 = (A * B[:, o_map[o[4 - 1]]] * beta4).sum(1)
beta2 = (A * B[:, o_map[o[3 - 1]]] * beta3).sum(1)
beta1 = (A * B[:, o_map[o[2 - 1]]] * beta2).sum(1)
pp = (pi * B[:, o_map[o[0]]] * beta1).sum()
print(o, pp)
结果如下:
代码所依据的公式:
参考代码及文章:李航老师 统计学习方法 习题10.1 - 知乎