MrD*_*Duk 2 python numpy probability markov-chains
在YouTube的一次讲座中,一位教授说Markov Chains可以简化为Start(S) * Transition Matrix(Q)^State#
我试图用numpy来复制它.
import numpy as np
S = np.zeros(shape=(1,2))
Q = np.zeros(shape=(2,2))
#starting state
S[0] = [.2,.8]
#transition matrix
Q[0] = [.9, .1]
Q[1] = [.7, .3]
Run Code Online (Sandbox Code Playgroud)
如果我这样做print S.dot(Q).dot(Q),它给了我[[0.848 0.152]]似乎是正确的答案(未来的两个步骤).
然而,这看起来并不完全相同SQ^x,所以我试过print S.dot(np.power(Q,2)),但这给了我[[0.554 0.074]].我哪里出错了,或者我在这里不懂什么?
表达S.dot(Q).dot(Q)和S.dot(np.power(Q,2))不一样的东西.第一个是你想要的行为,同时S.dot(np.power(Q,2))将每个元素提升Q到第二个力量.文档在这里.
对于比重复链接更紧凑的表示法.dot(Q),请使用:
S.dot(np.linalg.matrix_power(Q,n))
Run Code Online (Sandbox Code Playgroud)
在哪里n是所需的力量.
| 归档时间: |
|
| 查看次数: |
997 次 |
| 最近记录: |