建议在jupyter notebook中运行,ipynb文件点此下载。
隐马尔科夫模型是对时序信号处理的一把好手。
导入必要的库
import numpy as np
from hmmlearn import hmm
定义数据和说明
states = ["box 1", "box 2", "box3"]
n_states = len(states)
observations = ["red", "white"]
n_observations = len(observations)
start_probability = np.array([0.2, 0.4, 0.4])
transition_probability = np.array([
[0.5, 0.2, 0.3],
[0.3, 0.5, 0.2],
[0.2, 0.3, 0.5]
])
emission_probability = np.array([
[0.5, 0.5],
[0.4, 0.6],
[0.7, 0.3]
])
上述代码中,states表示有三个隐藏变量,这里假设是box
,而观测到的状态,其实是box
里面的不同颜色的球,可以是red
,也可以是white
。
每个box
里面的不同颜色的球比例不一样。这个比例则通