信号相关 - 匹配特定点

数据挖掘 时间序列 动态时间扭曲
2022-03-02 13:40:10

问题:有哪些推荐的技术来匹配数据集中的特定模式?

背景

我有几千个站点,我已经为其收集了时间序列数据。在下面的示例图中,我们在 y 方向上增加了时间,其中显示了来自两个站点的 2 个不同仪器的数据流。我为四个重要事件添加了手工挑选的、颜色编码的相关标记。通常我们会在每个测量位置选择 10-15 个这些标记。

通常,这些标记是手动关联的,但是,对于 1000 个采样点,这在合理的时间内是不可行的。我已经对大约 150 个数据流进行了手动关联,但更愿意使用自动化或半自动化流程来进行关联。

我们对数据有以下看法:

  • 通过挑选一个稀疏的数据集(例如,前 150 个手工挑选的相关性),我们可以对标记在相邻站点中的位置做出强有力的猜测。
  • 标记之间的时间间隔不是恒定的,只有很小的变化
  • 标记 A 总是在标记 B 之前,标记 B 在标记 C 之前,依此类推。
  • 并非所有标记都会出现在所有测量点
  • 并非所有测量站点都能够评估完整的时间序列(在下面的示例中,想象如果一个在 8000 毫秒时被切断,而不是超过 10,000 毫秒
  • 数据可以很容易地归一化以具有相似的值范围。

先验方法

我已经使用了 DTW 和 Fast DTW(动态时间扭曲)来执行任务,但它只有在有完整且完整的数据流并且所有标记都存在时才能正常工作。DTW 的缺点是它是一种 O(N2) 方法,并且具有 20,000 多个样本和大约 5000 个测量点的数据流,它的计算速度太慢了。

重述问题

  • 有哪些推荐的技术可以匹配时间序列数据中的特定“标记”?
  • 是否有仅评估数据流的某些部分的技术与评估整个数据流的动态时间扭曲之类的技术?
  • 我应该考虑哪些数据预处理以使计算更容易?

示例数据

在 y 方向上增加时间,显示来自 2 个不同仪器的数据流,显示显着事件的手工挑选相关标记

1个回答

我不是信号处理方面的专家,但我第一次尝试解决复杂性问题是对时间序列进行下采样。例如,如果您将 10k 点序列重新采样为 100 个点,则可以应用诸如 DTW 之类的方法来获得 2 个信号之间“全局”相似性的第一个近似值。这将比比较完整的时间序列花费更少的时间,然后根据结果(例如使用阈值),只有具有高相似性的信号对才会被完全比较。换句话说,第一步充当过滤器,因此只有配对的子集需要详细比较。