了解如何构建高阶马尔可夫链
understanding how to construct a higher order markov chain
假设我想预测一个人是 class1=healthy
还是 class2= fever
。我有一个包含以下域的数据集:{normal,cold,dizzy}
转换矩阵将包含从我们的训练数据集生成的转换概率,而初始向量将包含一个人从域 {normal,cold,dizzy}
的状态 x 开始(第 1 天)的概率,这又是也是从我们的训练集中生成的。
如果我想构建一阶马尔可夫链,我会为每个 class 生成一个 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
每个 class 产生两个初始向量。第一个给出 healthy/fever
class 在第一天出现 {normal,cold,dizzy}
的概率,而第二个给出 healthy/fever
在第二天出现的概率。这将给出 4 个初始向量。
或者我们是否只需要一个大小为 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
如果我们想class只用一个状态来验证观察结果,我可以看出第二种表示初始向量的方法会有问题。
假设空格集是S。通常,在第n个顺序中,
转换矩阵的维度为 |S|n X |S|。这是因为给定当前 n 个状态历史,我们需要单个下一个状态的概率。的确,这个单一的下一个状态引发了历史的另一个复合状态 n,但过渡本身是到单一的下一个状态。参见 this example in Wikipedia,例如
初始分布是 |S|n 个元素的分布(您的第二个选项)。
假设我想预测一个人是 class1=healthy
还是 class2= fever
。我有一个包含以下域的数据集:{normal,cold,dizzy}
转换矩阵将包含从我们的训练数据集生成的转换概率,而初始向量将包含一个人从域 {normal,cold,dizzy}
的状态 x 开始(第 1 天)的概率,这又是也是从我们的训练集中生成的。
如果我想构建一阶马尔可夫链,我会为每个 class 生成一个 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
每个 class 产生两个初始向量。第一个给出 healthy/fever
class 在第一天出现 {normal,cold,dizzy}
的概率,而第二个给出 healthy/fever
在第二天出现的概率。这将给出 4 个初始向量。
或者我们是否只需要一个大小为 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
如果我们想class只用一个状态来验证观察结果,我可以看出第二种表示初始向量的方法会有问题。
假设空格集是S。通常,在第n个顺序中,
转换矩阵的维度为 |S|n X |S|。这是因为给定当前 n 个状态历史,我们需要单个下一个状态的概率。的确,这个单一的下一个状态引发了历史的另一个复合状态 n,但过渡本身是到单一的下一个状态。参见 this example in Wikipedia,例如
初始分布是 |S|n 个元素的分布(您的第二个选项)。