时间序列数据的实时归一化算法?


12

我正在研究一种算法,该算法将从多个传感器流中获取最新数据点的向量,并将欧几里德距离与以前的向量进行比较。问题在于,不同的数据流来自完全不同的传感器,因此采用简单的欧几里德距离将大大过分强调某些值。显然,我需要某种方式来规范化数据。但是,由于该算法是设计为实时运行的,因此在规范化过程中,我无法整体使用有关任何数据流的任何信息。到目前为止,我一直在跟踪每个传感器在启动阶段看到的最大值(前500个数据向量),然后将来自该传感器的所有将来数据除以该值。这工作出奇地好,但是感觉很不雅致。

我并没有为找到一个预先存在的算法而感到幸运,但是也许我只是没有在正确的地方寻找。有人知道吗?或有什么想法?我看到一个建议使用移动平均值(可能是由Wellford的算法计算得出的),但是如果我这样做了,那么相同值的多个读数将不会显示为相同,这似乎是一个很大的问题,除非我缺少一些东西。任何想法表示赞赏!谢谢!

Answers:


1

根据您的问题,我了解您正在寻求:

  1. 找到一种标准化每个传感器的数据贡献的方法。
  2. 查看新数据点是否与以前的点有很大不同。

这是我要开始的地方

1.对于第一个问题:要去除均值和白化是您要寻找的。白化转换可确保您的功能均处于相同的动态范围内。

我将做出一些简化的假设,这些假设可能是完全相关的,但非常适合作为构建的起点。

假设您的数据是单峰的,则它具有一个明显的均值。我先减去数据的均值并执行白化转换(可能是PCA,也许是ZCA,具体取决于您的数据)

如果要实时执行此操作,我将使用运行中的样本计数来在移动的窗口上执行增白。确保您有足够的样本来使白化准确(白化需要协方差矩阵是可逆的,并且与传感器相比,您需要更多的时间样本)。

现在,如果您的数据不是单峰的,我可能会聚类数据以查看模式所在的位置。从根本上讲,对于每个到达的新点,我都会将其关联到适当的群集并从那里移动。

2.为了有效地测量到过去点的距离,我将使用马氏距离。实际上,马哈拉诺比斯距离几乎是白色空间中的欧几里得距离。

总之,请阅读有关增白和马氏距离的信息,我认为这些将为您指明方向。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.