时间序列中的模式识别

通过处理时间序列图,我希望能够检测到类似于这样的模式:

输入图片说明

以一个样本时间序列为例,我希望能够检测到如图所示的模式:

输入图片说明

我需要使用哪种AI算法(我假设是机器学习技术)来实现这个目标?有没有可以使用的C/C++库?


回答:

这是我做的一个小项目,用于分割心电图数据的样本结果。

输入图片说明

我的方法是“切换自回归隐马尔可夫模型”(如果您没听说过,可以谷歌一下),其中每个数据点都是通过贝叶斯回归模型从前一个数据点预测的。我创建了81个隐藏状态:一个垃圾状态用于捕捉每个心跳之间的数据,以及80个单独的隐藏状态对应于心跳模式内的不同位置。80个状态的模式直接从一个子采样的单一心跳模式构建,并且有两种转换 – 自转换和转换到模式中的下一个状态。模式中的最后一个状态转换到自身或垃圾状态。

我使用Viterbi训练训练模型,仅更新回归参数。

在大多数情况下,结果是足够的。结构相似的条件随机场可能会表现得更好,但如果您没有已标记的数据,训练CRF将需要手动标记数据集中的模式。

编辑:

这是一些示例Python代码 – 它不是完美的,但它给出了总体方法。它实现了EM而不是Viterbi训练,这可能会稍微稳定一些。心电图数据集来自http://www.cs.ucr.edu/~eamonn/discords/ECG_data.zip

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注