python - 用 Python 构造图的马尔可夫转移率矩阵
问题描述
我有一个关于在 Python 中构造转换率矩阵的问题,我有一个字典中描述的转换图:
graph={((), ('a',)): [ 0.0],
(('a',), ('b',)): [78.71428571428571],
(('a',), ('c',)): [18.142857142857142],
(('a',), ('d',)): [132.66666666666666],
(('a',), ('e',)): [64.0],
(('b',), ('a',)): [215.1139240506329],
(('b',), ('c',)): [13.26923076923077],
(('b',), ('d',)): [10.333333333333334],
(('c',), ('a',)): [60.333333333333336],
(('c',), ('b',)): [181.31034482758622],
(('c',), ('d',)): [507.0],
(('d',), ('a',)): [56.0],
(('d',), ('b',)): [968.0],
(('e',), ('a',)): [860.0]}
正如您在字典图中看到的那样,键说明了转换,值是连续时间马尔可夫链在状态之间移动的速率。例如,从“a”移动到“b”,速率为 78.71428571428571,以此类推。转换率矩阵的一个简单示例,便于理解:
graph = {(('a',), ('b',)): 78.71428571428571,
(('a'), ('c',)): 18.142857142857142,
(('c',), ('b',)): 181.31034482758622}
#the corresponding matrix for this sample graph:
q_matrix = np.asmatrix([[-96.85714285714285, 78.71428571428571, 18.142857142857142],
[0, 0, 0],
[0, 181.31034482758622, -181.31034482758622]])
我试图为这个问题建立一个矩阵:
M = [[0]*5 for _ in range(5)]
但是 M 中的索引与图中的转换不匹配,有什么帮助吗?谢谢
解决方案
推荐阅读
- vue.js - 如何使用事件@row-click 从 Quasar 表行中获取数据
- python - 如何从 SELECT SQL 查询中删除 NULL 值
- java - 我想打印 hi GrandFather;但它似乎打印 hi Father
- javascript - 按公共属性过滤对象数组
- c# - 有效跳过二维字符串数组中的空白行
- php - php array_merge_recursive 正在用数字键替换一些键字符串
- mysql - 如何根据不同的值排除 SQL 查询中的某些数据?
- javascript - React Native 如何从 json 解析
- php - 如何在 PHP (cURL) 中附加这种格式的 HTTP 标头?
- jquery - 如何从json中删除所有项目并获取空对象