2013-05-14 33 views
0

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

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

我已经使用了模式检测,模式匹配,但似乎有数千个算法,并且我大部分时间都看不到与我的问题有关系。 我可以做出第一个想法来到我的头上,就像每个点一样,根据模式检查特定列车上下一个点的距离,等等。

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

非常感谢您

尼科

规格:我要多传球,与相关的抖动。例如,我们以上面的模式定义。对于第一遍,我需要匹配确切的模式。第二遍,我需要将模式与抖动1→ [(0,1),(3 + -1,2)(4 + -1,1)],第二遍 - > [( 0,1),(3 + - 2,2)(4 + - 1,1)]等。抖动高达5。 只有第一个“事件”(时间,#系列)始终是“常量”。

我还需要添加一个事实,即时间序列中的最大时间大约为100 000,所以它可能会转换为0和1的“位串”。

编辑:在特定时间的价值并不重要,我甚至没有它。它只是一系列不同时间的“事件”&位置(事件开启的意思)。所有事件都是平等的。 (论文有时会检测具有双倍数值等的模式,但这里没用)

+0

你需要一个近似匹配,或只是完全匹配? – greedybuddha 2013-05-14 14:46:25

+0

我添加了更详细的说明:) – Nikkolasg 2013-05-14 14:55:41

+1

除了搜索“模式匹配”外,还尝试搜索时间序列数据的“查询”或“索引”,这会产生例如“ [本文](http://www.cse.uconn.edu/~dqg/papers/cp95.pdf),[本文](http://webdocs.cs.ualberta.ca/~drafiei/papers/sigmod97 .pdf)和[本论文](http://www.it.uu.se/research/group/udbl/Theses/HenrikAndreJonssonPhD.pdf)。 – 2013-05-14 14:59:19

回答

0

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

+0

你能多开发一点吗?你的“转向”变量是什么? – Nikkolasg 2013-05-14 19:04:12