马尔科夫链是以安德烈-马尔科夫命名的,它是一种数学系统,可以从一个 "状态"(一种情况或一组数值)跳到另一个。例如,如果你做了一个婴儿行为的马尔可夫链模型,你可能会把 "玩耍"、"吃饭"、"睡觉 "和 "哭闹 "作为状态,它们与其他行为一起构成一个 "状态空间":所有可能状态的列表。此外,在状态空间的基础上,马尔可夫链告诉你从一个状态跳到其他状态的概率,或者说 "过渡",例如,一个正在玩耍的婴儿在接下来的五分钟内不哭就睡着的概率。
一个简单的双状态马尔可夫链如下所示。
在我们的状态空间中有两个状态(A和B),有4种可能的转换(不是2,因为一个状态可以转换回自己)。如果我们在 "A",我们可以过渡到 "B "或停留在 "A"。如果我们在'B',我们可以过渡到'A'或停留在'B'。在这个双状态图中,从任何状态过渡到任何其他状态的概率是0.5。
当然,真正的建模者并不总是画出马尔科夫链图。相反,他们使用一个 "过渡矩阵 "来统计过渡概率。状态空间中的每个状态都作为行和列被包含一次,矩阵中的每个单元格告诉你从其行的状态过渡到其列的状态的概率。因此,在矩阵中,单元格的作用与图表中箭头的作用相同。
如果状态空间增加了一个状态,我们就会增加一行和一列,在现有的每一列和每一行上增加一个单元。这意味着当我们向马尔科夫链添加状态时,单元格的数量会呈四级增长。因此,一个过渡矩阵很快就能派上用场,除非你想画一个如同攀爬架一样的马尔科夫链图。
马尔科夫链的一个用途是在计算机模拟中包含真实世界的现象。例如,我们可能想检查一个新的水坝多久会溢出来,这取决于连续下雨的天数。为了建立这个模型,我们从以下雨天(R)和晴天(S)的模式开始。
模拟这种天气的一种方法是直接说 "有一半的日子是下雨的。因此,在我们的模拟中,每一天都有50%的机会下雨。" 这一规则将在模拟中产生以下序列。
你是否注意到上面的序列看起来与原始的不太一样?第二个序列似乎是跳跃的,而第一个序列(真实数据)似乎有一种 "粘性"。在真实数据中,如果某天是晴天(S),那么第二天也更有可能是晴天。
我们可以用一个双状态的马尔科夫链来模拟这种 "粘性"。当马尔科夫链处于状态 "R "时,它有0.9的概率留在原地,有0.1的概率离开到 "S "状态。同样,"S "状态有0.9的概率保持不变,有0.1的概率过渡到 "R "状态。
在计量学家、生态学家、计算机科学家、金融工程师和其他需要对大现象进行建模的人手中,马尔可夫链可以变得相当庞大和强大。例如,谷歌用于确定搜索结果顺序的算法,称为PageRank,就是一种马尔科夫链。
如上图,我们提供了一个马尔科夫链的 "Playground",在那里你可以通过捣鼓一个过渡矩阵来制作你自己的马尔科夫链。这里有几个例子可以参考: 例1, 例2, 例3 或者直接新建一个 随机的.如果提供的矩阵不是有效的过渡矩阵,过渡矩阵的文字将变成红色。过渡矩阵的行数必须合计为1,而且行数必须与列数相同。
你也可以在 这里全屏尝试