下采样时间序列:平均与最大三角形 - 三桶

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

我正在使用Flot Charts编程线图来显示时间序列。

为了减少要显示的点数,我通过在同一小时内对每个数据点应用平均函数来进行下采样。

最近,我发现了最大三角三桶算法:http://flot.base.is/

  1. 使用这样的算法与使用像平均值(每分钟,每小时,每天......)这样的简单函数有什么区别?
  2. 为了加速长期查询,通过在每个月的数据上应用LTTB来预先计算服务器端的sql表是否有意义,让客户端在聚合数据上应用其他LTTB?
javascript graph average flot downsampling
1个回答
0
投票

1:就我的目的而言,平均值的问题在于它们核对了样本之间的巨大差异 - 我的峰值和谷值比它们之间发生的更重要。 3buckets算法的目的是试图保留那些拐点(峰值/谷值),同时不必担心数据相似或相同的所有时间。

因此,在我的情况下,数据通常都是相同的(或足够接近 - 温度数据),直到样本X,在图中显示一个小的%变化很重要,因此桶算法是完美的。

此外 - 由于存储桶算法已参数化,您可以更改值(要保留的数据量)并查看哪些值可以查看最多的数据,同时在视觉上几乎相同,并确定在图表之前可以省去多少数据删除了大量数据。

天真的方法是抽取(从N个样本中删除X)但是如果它是你关心的异常值并且算法核算异常值会发生什么?那么你就改变你的抽取,这样如果差异很大,那么它就不会对那个样本进行核实。这是该概念的更复杂版本。

2:取决于您可以多快地计算所有数据,如果数据发生变化,还有其他各种因素。随你(由你决定。从我的角度来看,一旦我的数据在过去并且“选择”样本来表示桶的值,它将不会被更改,我可以保存它并且不会再次重新计算。

既然你的问题有点老了,你最终会做什么?

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