事件预测的隐马尔可夫模型

机器算法验证 时间序列 机器学习 预测模型 马尔可夫链 隐马尔可夫模型
2022-03-08 05:23:20

问题下面的设置是隐马尔可夫模型的合理实现吗?

我有一组108,000观察数据(历时 100 天)和2000整个观察时间跨度内的大致事件。数据如下图所示,其中观察到的变量可以取 3 个离散值[1,2,3]红色列突出显示事件时间,即tE的:

在此处输入图像描述

如图中红色矩形所示,我已经剖析了 {tEtE5} 对于每个事件,有效地将它们视为“事件前窗口”。

HMM 训练:我计划使用 Pg 中建议的多观察序列方法,基于所有“事件前窗口”训练隐马尔可夫模型 (HMM)。拉宾纳论文的第 273 页。希望这将使我能够训练一个 HMM,以捕获导致事件的序列模式。

HMM Prediction:那我打算用这个HMM来预测 log[P(Observations|HMM)]在新的一天,在哪里Observations将是一个滑动窗口向量,实时更新以包含当前时间之间的观察结果tt5随着时间的推移。

我期待看到log[P(Observations|HMM)]增加为Observations类似于“事件前窗口”。这实际上应该允许我在事件发生之前预测它们。

1个回答

你所描述的方法的一个问题是你需要定义什么样的增加P(O)是有意义的,这可能是困难的P(O)一般总是很小。训练两个 HMM 可能会更好,比如 HMM1 用于感兴趣事件发生的观察序列,HMM2 用于发生事件的观察序列。然后给定一个观察序列O你有

P(HHM1|O)=P(O|HMM1)P(HMM1)P(O)P(O|HMM1)P(HMM1)
HMM2 也是如此。然后你可以预测事件将会发生,如果
P(HMM1|O)>P(HMM2|O)P(HMM1)P(O|HMM1)P(O)>P(HMM2)P(O|HMM2)P(O)P(HMM1)P(O|HMM1)>P(HMM2)P(O|HMM2).

免责声明:以下内容是基于我自己的个人经验,因此请接受它。HMM 的优点之一是它们允许您处理可变长度序列和可变顺序效应(感谢隐藏状态)。有时这是必要的(例如在许多 NLP 应用程序中)。但是,您似乎先验地假设只有最后 5 个观察结果与预测感兴趣的事件相关。如果这个假设是现实的,那么使用传统技术(逻辑回归、朴素贝叶斯、SVM 等)并简单地将最后 5 个观察值用作特征/自变量,您可能会有更多的运气。通常,这些类型的模型会更容易训练并且(根据我的经验)会产生更好的结果。