在模式匹配时间系列中选择哪种算法?

时间:2013-05-14 14:31:08

标签: java algorithm pattern-matching design-patterns

我有多个时间序列表示为多个整数列表(在主内存中,而不是在数据库中)。我需要在所有系列中执行快速搜索,以找到特定模式。

示例,检测模式[ (0,1), (3,2), (4,1) ]其中(x,y)x =时间,y =#系列。

我用谷歌搜索模式检测,模式匹配,但似乎有数千种算法,而且我大部分时间都没有看到与我的问题的关系。 我可以做出第一个想法,就像每个点一样,根据模式检查特定列车上下一个点的距离,等等。

我需要指明从哪里开始,因为我在所有这些研究人员的出版物中感到困惑!

非常感谢

尼科

规格:我会进行多次传递,并且会产生抖动。 例如,让我们采用上面定义的模式。对于第一遍,我需要匹配确切的模式。第二遍,我需要将模式与一个抖动匹配 - > [(0,1),(3 + -1,2)(4 + -1,1)],第二遍 - > [(0,1),(3 + - 2,2)(4 + - 1,1)]等。抖动最多可达5。 只有第一个“事件”(时间,#serie)在任何时候都是“不变的”。

我还需要补充一个事实,即时间序列中的最大时间大约为100 000,因此可以将其转换为0和1的“位串”。

编辑:特定时间的价值无关紧要,我甚至没有。它只是在不同时间的一系列“事件”和位置(事件发生的系列)。所有事件都是平等的。 (论文有时会检测具有双重价值等的模式,但这里没用)

2 个答案:

答案 0 :(得分:0)

您是否可以使用状态机来表示问题?像(0,1)可以是一个状态,从那里,你可以期待下一个状态,基于“转”变量。

答案 1 :(得分:0)

您可以在下面找到许多子序列时间序列聚类算法的综述

Zolhavarieh,S.,Aghabozorgi,S.和Teh,Y.W.(2014)。的评论 子时间序列聚类。 《科学世界杂志》, 2014,1-19。 https://doi.org/10.1155/2014/312521