如何查看过去数据的相似形状趋势?除了动态时间环绕之外还有其他选择吗?

问题描述 投票:0回答:1

例如,假设我们每 5 秒就有来自传感器的实时数据,同时我们去年一整年都在收集这些数据。现在,我们今天从下午 5:00 到下午 5:10 出现了峰值。我们也想在过去的数据中搜索相似形状(幅度和形状)的尖峰。

我们尝试使用 DTW(动态时间环绕),但对于 5 秒频率数据,需要花费大量时间。如果有人可以帮忙请告诉我。

algorithm pattern-matching matching dtw historian
1个回答
0
投票

我建议使用指数阻尼移动平均线创建“指纹”,以限制要比较的候选者数量,然后像现在一样进行比较。

指数阻尼移动平均线由

avg[n] = a*value[n] + (1-a)*avg[n-1]
计算,其中
a
是常数。如果
t
是样本之间的时间,则这大致是一个平均值,表明趋势在时间
t/a
的位置。如果您曾经通过
uptime
计算看到过 Unix 负载平均值,这就是它们的计算方式。

因此计算 3 个平均值。如果用

a
中的
{1/12, 1/24, 1/60}
来计算,那么它们基本上就是1分钟、2分钟、5分钟移动平均线。这些数字的组合是 3 维空间中的一个点,代表一个“指纹”。您可以将其扔进k/d 树。现在,当您看到峰值时,请在树中查找与此峰值接近的过去指纹,然后对过去的峰值进行更广泛的比较。

您需要用实际数据进行实验才能回答以下问题:

  • 我们想要保留多少个平均值?
  • 它们应该是什么?
  • 多近才算足够近?
  • 我们是否应该过滤我们在树中粘贴的指纹,以减少过去单个峰值中的许多相似候选者?

但是仅从合理的候选人开始应该会取得良好的性能胜利。

© www.soinside.com 2019 - 2024. All rights reserved.