时间序列中的模式识别

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

输入图片说明

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

输入图片说明

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


回答:

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

输入图片说明

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

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

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

编辑:

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

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

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