我正在使用pyemma进行一些markov操作。具体来说,我想构建一个状态转换矩阵。在大多数情况下,解脓症可以正常工作,但是在某些情况下,过渡矩阵所表示的状态数量与数据中实际存在的状态数量不同。
例如:
import numpy as np
from pyemma import msm
sequence = np.array([21, 21, 32 ,32 ,55 ,22 ,33 ,11 ,11 ,22 ,44 ,44 ,44 ,33 ,11 ,44 ,99])
vals = np.unique(sequence)
#note there are 8 unique states so we expect 8 by 8 transition matrix
model = msm.estimate_markov_model(sequence, 1)
transitionMatrix = model.transition_matrix
#transition matrix is 4 by 4
为什么过渡矩阵不是8 x 8?
谢谢。
答案 0 :(得分:0)
如果您根据数据进行估算,PyEMMA将使用最大的连接状态子集进行估算。背景是,当未连接过渡矩阵时,例如,您不能为过渡矩阵提供唯一的度量。每个状态都可以从其他任何状态到达。
您可以通过查看生成的MSM对象来检查连接的状态:
print(msm.active_set)
产生一些与离散状态索引相对应的整数。