【问题标题】:Pyemma transition matrix returning array of unexpected sizePyemma 转换矩阵返回意外大小的数组
【发布时间】:2019-04-30 12:33:54
【问题描述】:

我正在使用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?

提前致谢。

【问题讨论】:

    标签: python markov-chains


    【解决方案1】:

    如果您根据数据进行估计,PyEMMA 将使用最大的连接状态子集进行估计。背景是,当转换矩阵未连接时,您无法为转换矩阵提供唯一度量,例如每个状态都可以从任何其他状态到达。

    您可以通过查看生成的 MSM 对象来检查连接的状态:

    打印(msm.active_set)

    产生一些与离散状态索引相对应的整数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-09-08
      • 2016-11-11
      • 2015-05-07
      • 2017-11-18
      • 1970-01-01
      • 1970-01-01
      • 2016-05-20
      • 1970-01-01
      相关资源
      最近更新 更多