理解如何构建高阶马尔可夫链

时间:2016-08-15 10:30:10

标签: algorithm markov-chains

假设我想预测一个人是class1=healthy还是class2= fever。我有一个包含以下域的数据集:{normal,cold,dizzy}

转换矩阵将包含从我们的训练数据集生成的转换概率,而初始向量将包含一个人从域{normal,cold,dizzy}开始具有状态x的概率(day1),同样也会生成来自我们的训练集。

如果我想构建一阶马尔可夫链,我会为每个类生成一个3x3转换矩阵和一个1x3初始向量,如下所示:

> TransitionMatrix
       normal cold dizzy
normal     NA   NA    NA
cold       NA   NA    NA
dizzy      NA   NA    NA

>Initial Vector
     normal cold dizzy
[1,]     NA   NA    NA

NA将填充相应的概率。

1 - 我的问题是关于高阶链中的过渡矩阵。例如,在二阶MC中,我们将有一个大小为domain²xdomain²的转换矩阵,如下所示:

               normal->normal normal->cold normal->dizzy cold->normal cold->cold cold->dizzy dizzy->normal dizzy->cold dizzy->dizzy
normal->normal             NA           NA            NA           NA         NA          NA            NA          NA           NA
normal->cold               NA           NA            NA           NA         NA          NA            NA          NA           NA
normal->dizzy              NA           NA            NA           NA         NA          NA            NA          NA           NA
cold->normal               NA           NA            NA           NA         NA          NA            NA          NA           NA
cold->cold                 NA           NA            NA           NA         NA          NA            NA          NA           NA
cold->dizzy                NA           NA            NA           NA         NA          NA            NA          NA           NA
dizzy->normal              NA           NA            NA           NA         NA          NA            NA          NA           NA
dizzy->cold                NA           NA            NA           NA         NA          NA            NA          NA           NA
dizzy->dizzy               NA           NA            NA           NA         NA          NA            NA          NA           NA

此处,单元格(1,1)代表以下序列:normal->normal->normal->normal

或者只是像domain²xdomain那样:

               normal cold dizzy
normal->normal     NA   NA    NA
normal->cold       NA   NA    NA
normal->dizzy      NA   NA    NA
cold->normal       NA   NA    NA
cold->cold         NA   NA    NA
cold->dizzy        NA   NA    NA
dizzy->normal      NA   NA    NA
dizzy->cold        NA   NA    NA
dizzy->dizzy       NA   NA    NA

此处,单元格(1,1)代表normal->normal->normal,它与之前的表示不同

2-2级MC的初始向量怎么样?我们需要两个大小为1xdomain的初始向量,如下所示:

     normal cold dizzy
[1,]     NA   NA    NA

每个类导致两个初始向量。第一个给出{normal,cold,dizzy}类第一天healthy/fever出现概率,第二个给出healthy/fever第二天出现概率。这将给出4个初始向量。

OR我们只需要一个大小为1xdomain²的初始向量,如下所示:

    normal->normal normal->cold normal->dizzy cold->normal cold->cold cold->dizzy dizzy->normal dizzy->cold dizzy->dizzy
[1,]             NA           NA            NA           NA         NA          NA            NA          NA           NA

我可以看到,如果我们想要仅用一种状态对观察进行分类,那么表示初始向量的第二种方式将是有问题的。

1 个答案:

答案 0 :(得分:2)

假设空格集是 S 。通常,在 n 顺序中,

  1. 转换矩阵的维度为 | S | n X | S | 。这是因为给定当前的 n 状态历史,我们需要单个下一状态的概率。确实,这个单一的下一个状态会引发另一个复合状态历史 n ,但过渡本身就是单个下一个状态。见this example in Wikipedia,例如..

  2. 初始分布是 | S | n 元素的分布(您的第二个选项)。