Pyemma过渡矩阵返回了意外大小的数组

3
我将使用pyemma来进行一些马尔科夫操作,特别是我想要建立状态转移矩阵。在大多数情况下,pyemma的工作是正确的,但是在某些情况下,转移矩阵中所表示的状态数量与实际数据中的状态数量不同。
例如:
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×8?
提前感谢。
1个回答

0

如果你从数据中估计,PyEMMA将使用最大的连接状态子集来进行估计。这是因为当转换矩阵不连通时,无法为其提供唯一的度量,例如任何状态都可以从其他任意状态到达。

你可以通过查看结果的MSM对象来检查哪些状态是相互连接的:

print(msm.active_set)

返回一些整数,对应于离散状态指数。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接