【问题标题】:Markov chain in python - Random selection with a probabilitypython中的马尔可夫链-概率随机选择
【发布时间】:2022-01-24 07:15:16
【问题描述】:

我正在尝试通过使用具有特定概率的随机数选择来在 python 中使用马尔可夫链。我从 youtube 视频中找到了一个代码,但我认为我遗漏了一些东西。我想生成随机的数字序列(“0”或“1”) 这是代码:

n = 4 #steps
start_state = 0
prev_state = start_state

A =np.array([[0.5, 0.5], [0, 1]])
while n-1:

    curr_state= np.random.choice([0, 1], p=A[prev_state])
    print(state[curr_state])
    prev_state = start_state
    n -= 1
print("stop")

矩阵 A 是转移矩阵,根据这一点,如果系统进入状态“1”,则不能进入状态“0”(矩阵 A 中的概率为零)。

所以我不能得到像 s1=[1 0 1] 或 s2=[1 0 0] 这样的序列,而是这样的序列:s3=[1 1 1]。 我得到的其余序列很好。

你能帮我解决这个问题吗?可能我错过了代码的作用。

提前致谢!

【问题讨论】:

    标签: python sequence markov-chains


    【解决方案1】:

    首先,我想向您强调的是,在状态 1 中,您的概率矩阵为 [0,1],任何时候您进入状态 1,您都会卡在那里,因为转换回 0 的概率是0.

    其次,问题在于prev_state = start_state 行。它应该是prev_state = curr_state

    【讨论】:

    • 非常感谢,我刚刚发现了错误!干杯!!
    猜你喜欢
    • 2014-10-06
    • 2015-12-11
    • 2019-02-07
    • 1970-01-01
    • 2018-03-24
    • 2023-03-31
    • 1970-01-01
    • 2018-03-25
    • 1970-01-01
    相关资源
    最近更新 更多