评估一阶马尔可夫链的集群

机器算法验证 数据可视化 聚类 马尔科夫过程
2022-03-13 01:04:17

我将数千个一阶马尔可夫链的数据集聚集成大约 10 个集群。

是否有一些推荐的方法可以评估这些集群并找出集群中的项目共享什么以及它们与其他集群有何不同?所以我可以做出类似“集群 A 中的进程一旦到达那里就倾向于停留在状态 Y 中,这对于其他集群中的进程来说并非如此”这样的声明。

这些马尔可夫链的转移矩阵太大而不能仅仅“看看”。如果有帮助的话,它们相对稀疏。

我的想法是把所有的转换矩阵放在一个簇中,对它们求和,然后将其绘制为图片中的强度(范围从 0 到 255)。我应该尝试一些更“专业”的东西吗?

2个回答

要说明每个集群的稳态行为,您可以通过特征向量计算每个转移矩阵的稳态分布,然后按集群比较箱线图。如果不先应用某种平滑,您可能会在计算稳态时遇到问题。

您如何对转换矩阵进行聚类?如果是我,我会对每一行应用加法平滑,然后对每一行进行居中的对数比变换,然后展平矩阵。

如果您使用 K-means 或变体进行聚类,则可以分析归一化的聚类中心。或者只是从每个集群中挑选一些观察结果并分析它们。

首先,要了解一下,您的 105 x 105 尺寸矩阵是否与您提到的应用程序相对应?当您说“留在状态 Y”时,这是否意味着坚持应用程序 Y?

然后,我会假设诸如“集群 A 中的进程一旦到达那里就会保持在状态 Y,这对于其他集群中的进程来说并非如此”这样的结果有点过于细化,只有 10 个集群。您是否尝试过应用程序域的集群——如果我理解正确,您可以根据用户行为对 105 个应用程序进行集群。接下来,您是否查看过用户的简单存在而不是过渡,即查看 105 个应用程序中的用户配置文件?听起来好像您可以在用户配置文件之间使用皮尔逊系数;要么在应用程序集群上,要么在应用程序本身上。这也许可以扩展到应用程序之间的转换,但目前我觉得集群的数量和您感兴趣的结果类型之间存在巨大的不匹配。