【问题标题】:Which Algorithm to choose in pattern matching time serie?在模式匹配时间序列中选择哪种算法?
【发布时间】:2013-05-14 14:31:08
【问题描述】:

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

例如,检测模式 [ (0,1), (3,2), (4,1) ] 其中 (x,y) x = time, y = # series。

我在谷歌上搜索了模式检测、模式匹配,但似乎有数千种算法,而且我大部分时间都不太明白与我的问题的关系。 我可以做第一个想到的想法,比如,对于每个点,根据模式检查到特定火车上下一个点的距离,等等。

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

非常感谢

尼哥

规范:我将进行多次传递,并带有相关的抖动。 例如,让我们采用上面定义的模式。对于第一遍,我需要匹配精确的模式。第二遍,我需要匹配抖动为 1 的模式 -> [ (0,1), ( 3 +- 1, 2) (4 +- 1, 1) ], 第二遍 -> [ (0,1), (3 +- 2, 2) (4 +- 1, 1) ] 等。抖动上升到五个。 只有第一个“事件”(时间,# serie)始终是“恒定的”。

我还需要补充一点,时间序列中的最大时间在10万左右,所以可以转换成0和1的“位串”。

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

【问题讨论】:

  • 您需要近似匹配,还是只需要精确匹配?
  • 我添加了更详细的规范:)
  • 除了搜索“模式匹配”之外,还尝试搜索时间序列数据的“查询”或“索引”,这会产生例如this paperthis paperthis thesis
  • 您是否也在寻找速度,或者只是任何可行的方法?
  • 速度很关键,内存使用并不重要。它是用于科学程序的。

标签: java algorithm pattern-matching design-patterns


【解决方案1】:

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

【讨论】:

  • 你能再开发一点吗?你的“转”变量是什么?
【解决方案2】:

您可以在

中找到许多子序列时间序列聚类算法的评论

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

【讨论】:

    猜你喜欢
    • 2021-03-30
    • 1970-01-01
    • 2019-08-28
    • 1970-01-01
    • 2019-10-03
    • 2011-06-26
    • 2020-04-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多